RubyConf, yeah. Hi, my name is Brad Urani. I'm a staff engineer, a software engineer, a staff engineer at a company called Procore here in Southern California. This is what I look like on social media. It's a funny thing if you do a lot of tweeting and DevRel and things like that, you're afraid to change your profile photo because you don't want people to forget who you are. I really should update it, but I was a lot fitter back then, so I might just keep it. I work at Procore. Procore is located in a beautiful little surf town called Carpentria, California, which is about 200 miles north of here. It's sunny, it's beautiful. We're big supporters of the Ruby community. We're not sponsoring this conference, but we did sponsor the last two RailsConfs in a previous RubyConf. We love these events. If you went to RailsConf, you probably saw our booth and all the engineers we sent down there. We build software for the construction industry, so if you are going to build a skyscraper or a shopping mall or a subway or an opera house, there's a good chance you're probably gonna use our software. It's a full suite of construction management tools for building buildings like this. Here's one of our iPad apps that does drawing management for people working in the field. Here's some men using the iPad app on the side. I say men because construction has a similar problem that tech does, which is, it's overwhelmingly run by males, unfortunately, but we try to close the gap here with, we've got a program called Women in Construction that we're really proud of that we actually modeled after a lot of the Rails programs to increase diversity in the tech workforce, things like Rails Girls and stuff. We actually copied some of those paradigms for a similar program for construction industry.  We have one of the world's largest Ruby on Rails monoliths. I know Shopify's got us beat. They've got like three million lines of Ruby in R's. We've got at least a million, depending on how you count it. It started on Rails 0.95 in like 2005. We've got, I'm not, I don't think I'm supposed to tell you exactly how many, but dozens of backend developers working on it every day. We deploy it four or five times a day. So we do Ruby a huge scale, and along with like sort of massive deployments like this, it comes with a lot of ops work, a lot of tools and things like that. We've got a lot of this kind of stuff. So these are various like infrastructure tools and system management tools and configuration tools. And I'll be perfectly honest, like I'm not very good at this kind of stuff. I'm mostly a web developer. I spend a lot of time writing Ruby and JavaScript and Java and doing database infrastructure, SQL and things like that. But we've got an ops team and they do a lot of this kind of thing, these kind of things. And these tools all have something in common, which is they're all very command line centric. Using these tools effectively requires good competency in your shell, Unix-like environments. Being comfortable with SSH and servers are doing things like that. And when I sort of got into this world, I was a little bit of a disadvantage. Here's me in 2013. I did .NET on Windows long before I came to the Linux environment and Ruby and things like that. And so command line was like a little bit foreign to me. It wasn't something I was immediately comfortable with. Here's me in 2018, right? And now I completely live in my shell. I vim all day. I almost never leave it. There's really no difference to me between Windows, Mac OS or Linux because I never leave my shell anyway. So obviously something changed in those five years. Something caused me to completely issue window environments and work entirely into command line environment. And that thing was .files. .files is our hero today. Yay, .files, woo! Yeah, .files, right? So .files, this is how you customize your shell environment. And that's what this talk is about. This talk is about how to hack your shell environment, how to customize your shell, how to install tools in your shell, how to upgrade your shell and just make it genuinely kickass and awesome by modifying your .files. And I'll tell you what, if you start to do this, well, this talk is mostly fun. This talk is mostly about tips and tricks and cool things to improve productivity and make you a more productive and happy developer. It does carry sort of like a serious kind of message, which is that if you get competent in this environment and shell environment, it does allow you to be more comfortable using tools like this. I like to say that .files are sort of a gateway drug to ops. That if you really master your shell environment, you won't be so shy about SSH-ing to servers and changing configurations and building Docker images and doing stuff like that. So it's a really good segue from a web development career into being more comfortable in systems management and things like that. So what are .files, right? Simply put, they are files in your home directory that start with a .. So if you see Detilda and you have your home directory, mine looks like this, and all these little files that start with a .. They customize your system. They change the way programs interact. They change the way your shell works. They change the colors on your screen, things like that. And it can be really, really fun. You can go deep down a rabbit hole of changing these things and modifying your environment and learn a lot on the way, it turns out. One thing you might notice is that a lot of these are SimLinks. More on that later. Now, this comes with a bit of a warning. If you start hacking your .files, you will break everything at some point and render your computer almost completely inoperable. At work. And it will be embarrassing. You will be pair programming with someone and find you cannot bundle install because you broke something in your Zsrc. But you will fix it. And that's the key. If you're like me, you learn about technologies in a lot of different ways. Books, online classes, conference talks. But in my experience, breaking things and then fixing them again teaches you the most out of all. And that's one of the things this talk is about, is about breaking your shell and then fixing it again. And this gets addictive. This is an actual photo of me on Christmas Eve in 2015. That's when I got hooked on .files. I was supposed to be visiting home, in St. Louis. I was visiting home. I was supposed to be spending time with my loved ones and my family. And I got totally hooked trying to modify my shell environment and miss most of Christmas. Santa came down the chimney. So I was hacking on my VMRC. We drank a bottle of red wine together and both passed out. So you will miss time with your friends and family if you get hooked on this stuff. It gets addictive fast. But anyway, let's start with shells, right? Shells, we probably all use a shell at some point. Ruby tools are very shell-centric. Rails tools are very shell-centric. This is a boring shell. I call him Larry. I don't know why he just looks like a Larry. But shells, first of all, it's not confused shells and terminals. If you're in macOS, for instance, you load a terminal, something like terminal or iterm, which emulates sort of a Linux terminal and emulates old Linux hardware from back in the days. But inside that, you have a shell. A shell is where you run these commands. And believe it or not, you do have a choice of shells. So by default, macOS and most Linux distributions use a shell called bash. Bash is reliable, it's well-maintained, it works. It's a little bit boring. And it turns out you're not stuck using bash. You can actually change your shell. I use a shell called Zshell, which is a little more exciting and offers a little bit more. You can see by this shell on the beach, by this beautiful California sunset that it's a little more interesting. Hopefully the sky is orange like that because the sun is actually setting, not because it's the sun is shining through some thick plume of wildfire smoke. Pray for us in Southern California, good God. But anyway, Zshell I find a little bit more exciting than bash and I'll show you why. For one thing, it is very similar to bash, but it has just, it's got some things that just make it a little bit nicer, a little bit more ergonomic. I like, for instance, the tab completion comes with colors and sort of better layout.  Say you want to CD into a user local bin, right? You can do this little trick, dash U slash L dash B and it automatically expands these kinds of things. So it gives you some slight nice little things to have over bash, but I like it because it's not so different where if you have to use a bash shell, you don't feel uncomfortable, you don't feel out of place. You SSH into your server. It's so much like bash you don't notice, just a little bit better. There are these shells too. These are shells from the 90s where things got crazy fancy and they have like sort of visual menus on the screen and they're like sort of half gooey, half shell. I don't really use them. Some people swear by them. They seem a little bit out, little bit crazy for me, but your mileage may vary, you may like it. But you have a choice. Like I said, I use these shell. I think it's a nice balance between being similar to bash that we're familiar with and being a little bit better. And it comes with a programming language called SSH.  You type this into your terminal, next time you open a shell, it will be SSH instead of bash. It's that easy. And it comes with a scripting language, right? And SSH is very similar to bash, so similar that it's almost the same that most of the time if you write a program in one or the other, they are interchangeable. I gotta be honest though, these scripting languages, bash, SSH, they're showing their age, they're quite frankly not very good. They're weird, they have weird scoping rules, they're a lot of foot guns, easy way to mess them up. For any serious scripting, of course, I'm gonna reach for Ruby as hopefully you are, but I tell you what, it is nice to know just a little bit to be able to do some conditionals, some if statements.  So it's one of the things that I learned, doing .files is just a little bit of bash, right? You can put these in a file, of course, but what's kinda cool is you can modify your shell by editing a .file called Zushar C. This goes in your home directory and in this you can put all kinds of magic that makes your shell even cooler. For instances, you can add aliases. So I have an alias here, BE, which runs bundle exec. Well, let's see, I've gone from like 12 characters to two. Congratulations, I just six text your productivity, right? You all deserve a raise. And that's pretty nice because you can just do BE Rails console, for instance, like that and have less to type. A simple but effective trick for making your shell experience just a little better. I don't know what happened there, you didn't see that. Right, here's another one, BERS, bundle exec Rails server. How many of you type this all day long, pretty much every day? I definitely do. Makes it just a little bit shorter to type. But in your shell, you can also do some other pretty clever things, like you can add functions. So here I made a little one, it's just called MCD. All this does is makes a new directory with the dash p flag, meaning create all those like subdirectories in the path along the way if they don't exist and CD into it. So if you just do something like this, it makes the directory and CDs right into it. So there it is, one nice little shell hack that just makes your life a little bit more ergonomic. And we can do a little better than that. For instance, here's one I love. It just makes a function called g. And all this little snippet does is say, if you type g without an argument run, get status. If you give it an argument, make it get and then whatever the argument is. And so all day long, I can, for instance, let's see here, just type g and get my get status. Ah, a piece of cake, isn't that nice? Or I can g log and get log. And I'm just a little bit more productive if I really like that one. I think that's a great little shortcut. It makes my life a little better. Here's some other ones, right? So this one's kind of funky. I'm defining a function called man.  It pulls up the man page. It throws a manual of certain programs you use. Well, I'm overriding that. I'm creating a function that overrides that. But look at the last line of it. Notice it's calling man at the bottom. And then there's all this term cap stuff. I don't actually know what that is. I took this from someone else's. Dot files are kind of cool in that you can kind of trade snippets with people. More on that later. But whatever this little magic snippet does is it simply gives you colored man pages. Ah, cool. Nice little improvement here. All right. You may have noticed my shell has kind of a cool prompt. This is a default just like boring prompt, tilde, percentage sign. Not very fun, not very useful, not very informative. We can do much better, for instance. The default is kind of boring. What's really cool is we put a get branch in our prompt, right, even better. Unstaged, staged and committed files, right? Even diffs between the origin and things like that. And you might have noticed it, but this is what my prompt looks like. So we have current directory, the current get branch that we're on. The number of commits behind origin master from compared with the server, right? The number of commits ahead, in case you have committed something that's not on GitHub yet. The number of local stage changes and the number of unstage changes. That's awfully useful and awful cool. It took me weeks and weeks and weeks to write the script. It's a labor of love, just kidding. All I did was get clone it. It's a project out there. I installed it and it's pretty awesome and it works. And it does smart things, like I think it background fetches that and there's a timeout so it doesn't freeze your shell if it can't connect to the internet, right? There's also a bash get prompt if you stick with bash, right? Very cool, fun stuff makes me a little more productive. Here's another tool that I really like, moving on. This is a tool called FCF, which is one of my favorite shell tools which is simply a fuzzy find tool. It is first and foremost a Linux tool that I can pipe to and perform sort of a fuzzy search. Cool, all right? So kind of like grep but for fuzzy searching but it also can do some neat things like help me quickly find files in this folder. Oh, very, very neat, right? It's also, I really like it because it improves my shell. You can search, like your command history really easily. And when you dig into it and you dig into the docs there are a lot of cool things. It is sort of closely linked to VIM. So if you are a VIM user, you can use Fuzzy Finder to find things. Let me get into the right directory here. The .files repo, more on that later.  Now this is not a VIM talk. I could give a whole VIM talk. I would love to give a whole VIM talk but I wanted to do a talk that everyone, because I know there's some not VIM users here. I want to give a talk for everyone but I do want to mention VIM sort of briefly because this does kind of come into play with this whole .files strategy. To VIM or not to VIM? Well, for those of you who don't know, by the way, VIM is this text editor. It's from the 90s. It's purely shell based. It requires you to learn all these like really arcane and weird text commands. It's a text editor that's totally different from anything you've ever used before and it's a very steep learning curve. And there are three phases to learning VIM. Suffering, right? You will hate it. You will not be able to do anything.  Stockholm syndrome. This is when you are held captive by kidnappers and after long periods of confinement, you sort of identify them and sympathize with your captors for getting that they are terrible people who are ruining your life. And then number three is the sunk cost fallacy. This is when you have invested massive amounts of time in it and you swear and even though it was a terrible idea and not worth the effort, you've already gone through the effort so you swear it was a great idea, right? It's sort of like having kids. When someone, when a, the only reason anyone has more than one child is that they forgot how much trouble it was with the first one. That's like what's happening when your friend recommends you learn VIM, right?  But I will tell you what, even if you do not use VIM as your editor like I do, it is useful in knowing because VIM on your laptop leads to VIM on the server. And it is a great tool to have in your tool belt is to learn just a little bit of it because if you ever have to SSH to that server, modify that config file, a little VIMFU will really go a long way and it pops up in sort of weird kind of interesting places. Like for instance, did you know that if you are in P-SQL, how many Postgres users do we have out here? Yeah! Someone asked me the other day like what is your favorite webpage on the internet? I said it's the Postgres manual page that shows the locking semantics. I'm only nerd. But anyway, you can be here in P-SQL and you can slash E and pop up a VIM terminal, right? Select, whoops, no, quit, which is always the hard part of VIM and it runs just like that, which is like a handy little trick. Did you know that if you were in less, right, man opens less, you can use VIM shortcuts to search. So, control U, control D, page up, page down, those are VIM key command shortcuts. So, VIM key commands, shortcuts, various things, pop up in all kinds of interesting places in your shell and become kind of useful. So, good tool to have, whether you use as an editor is up to you. Anyway, P-SQL, speaking of P-SQL, because I already mentioned that, you may have noticed that my P-SQL prompt looked different than yours. Yes, whoops. You notice I have my name in there. I've got local, which is the name of the local server. You can edit that with the .file turns out. If you put a file called .p-SQL in your home directory, you can change things. For instance, this little bit makes it so nulls show up looking like that rather than just a blank space. This little bit changes the prompt, right? So you know what database or what server you're on, so you don't confuse your local prompt with the production database prompt, which is very dangerous, right? This little bit shows the timing at the end of every query. Kind of cool, so you know how long it took to execute. Nice. But let's move on to a probably more commonly used tool, which is get. There's a file called get-rc. If you put it in your .files, you can change your, you can do everything in completely hacker-get environment.  Defom, diff-origin-master-dash-color, right? That just gives us g. Remember my g shortcut? Yeah, it's tying together, right? And there we go. Psh. I like this one too, get-lg, which just makes you a nice little, whoops. Oh, cool. You can kind of see it on the left, but it's actually just sort of like a visual representation. This isn't a very deep repo here, but it gives you a visual representation of your sort of get directed acyclic graph, right? And in here, you can do things like hooks. You can add hooks. I have this little script, so hooks are, right? You can put little bash files in .get slash hooks in any of your repos, and they will run, like for instance, there's a after commit hook, so it will run after you do a get commit. There's a pre-commit hook, so it will run after you do a pre-commit. This is a pre-push script that I wrote. Don't try to decipher it. Before I tell you what it is, has anyone accidentally ever pushed a master? Yeah, right? All right, this is what it looks like if I try to push to master. Aha! Nice, this is saving me a lot of embarrassment, right? And all it takes is a little bash magic in a get hook. Okay, let's talk about Ruby. Ruby has a few .files that you can change to change your Ruby experience.   Cool, RSpec automatically had color, automatically run your specs in random order, just by having this in your .files, nice. It was Rails, right? Every time you make a new project, you can have it automatically use certain options, so you don't have to remember how you like to do your Rails new every time, right? Kind of handy, but my favorite, when we're talking about RubyLand is pry, turns out, does anyone use the pry shell? Yeah, turns out you can modify your pry experience in quite profound ways by using .files. So there's a file that's called .priRC, it goes in your home directory, and in it, you can set up shortcuts. So for instance, here, if anyone uses pry by bug, you're probably typing continue next, exit all day for me at CCNN, FF, right? Ah, that's a killer feature, that is a really nice one. You can even install gems in your pry, right? So I use one called awesome print, which improves the sort of the output if you print an array or something in pry or a hash. They look a lot better, they're colorized, they're split across multiple lines, and just by putting this in your pry RC, you can make it use awesome print by default to print everything, which is a huge experience, in my opinion, in the pry experience. As anyone use factory girl to set up fake data in your Rails app, you can use your factory methods, like what does it create and build in your pry if you do this, and that way you can sort of pull up demo objects and things that you can hack around on really with no effort at all. Kind of a cool trick, and I like this one too, this allows me to just run a command called SQL and type in raw SQL, so from a Rails console, right, I can type SQL select star from whatever and just run a SQL command and get the output right there. If I don't bother, want to bother with active record, and I prefer to write SQL. So lots of little hacks, lots of little tricks in ways you can improve your life by putting any type of crazy thing in your pry RC, any Ruby you can run, any gem you can install, any functions you can create, and you can just call the functions from within pry, and in that way completely modify your pry experience. It's really nice. Then there's T-Mux. So T-Mux is a terminal multiplexer, and this is one of my favorite tools. You notice the little green bar down here at the bottom. This is how I run multiple windows in my terminal. There's a window, there's a window, and you can do splits, like that, or like that, and have multiple shells on the same screen. T-Mux, notably, is a shell-based terminal multiplexer. So probably if you're using a terminal, your terminal can also do cool things like this, like splitting panes and stuff like that. You don't need to do this in the shell. You might even argue that terminals do a better job at doing splits and windows and tabs than something like T-Mux, but T-Mux has a huge advantage, in my opinion, and that T-Mux can be run on a server. So, for instance, here I am on a remote server, on an EC2, pretend this is production, right? I can run T-Mux on a remote server, and let's say I am hacking around on a server, I need to run a backfill in production using Rails console and ActiveRecord to try to fill in database objects. Maybe I'm editing config files or I've got like a P-SQL terminal open or something like that. You could have any number of things. I must say, let's up the ante. Let's say you're on an airplane with spotty Wi-Fi. Has anyone ever lost an SSH session and cursed themselves, right? Pop quiz for you.  No, but it does if you're in a T-Mux session, and the kind of cool thing is that you can lose your connection like this, then you can SSH back in, whoop, I'm gonna make that bigger, shh. You can do a little thing called T-Mux LS, see your open sessions, and then you can T-Mux Attached to session zero, whoops, T-Mux, sorry, and get it all back and save your session, and in the meantime, whatever you've been doing has been running. So that's kind of a magic superpower that helps you a lot in OpsLand, and for that reason, I use T-Mux locally, so I use Vim as my editor, and as I'm actually developing Ruby on my local laptop, I use T-Mux because I like the skill that it gives me and the extra tool in my tool belt so that when I do need to run it in the server, I'm already comfortable with it and know how to use it, and in that way, modifying your .files, of course, can help you learn valuable server skills. I should mention that all the colors and everything are totally customizable of the .file. That's where the .file comes in, is you can totally trick out T-Mux in the kind of coolest ways with all kinds of colors and themes and neat stuff. So let's talk about GitHub, right? So what have we done so far? We've created all these configuration files, we have customized our environment, we've added shortcuts, aliases and everything. We need to save these now, right? We don't wanna just sort of start hacking away at our laptop and if we get a new laptop or have to reformat it, it's gone, lost. What we want is we wanna put this stuff in a repo, don't we? So here is how we do that. First of all, create a GitHub repo and call it .files. Everyone calls it .files. Every single person I know names it exactly that. D-O-T-F-I-L-E-S, it's just called .files. Here are mine, so if any of you want my T-Mux setup or my P-SQL shortcuts or my Zsrc or all my aliases, you are welcome, this is a public repo, you are welcome to go find them and borrow them and trade them. That's the kind of cool thing is you trade them like they're Pokemon cards or yo-yos or whatever. What do people trade these, I don't even know what people trade these, is it jewels, is that what people trade? Like you're trading jewels, is that what teenagers do now? I'm not even sure. But it's like trading, right? Sorry. So once you have your .files in a public repo, you can trade them and this is how you back them up. So what you need to do then is a way to install them. And install them is, okay, so you've got your .files in a repo, it's wherever you put your source directory. Wherever on your local machine that you put your source code, put it in there, create your .files, name them without the little . at the beginning so it's just like .zrc, .zrc. And then what you need to do is sim link them into your home directory. So that's the trick then, right? We need like a little program or a script that sim links them from the source directory into your home directory where they take effect the next time you pop open a shell. And there are a few ways to do that, right? I use a little program called RCM. It's from the find folks at Thoughtbot. You just kind of brew install RCM or apt-get install RCM. And then there's a little command RC up, build a slash .files and it sim links them all in and then you close your shell, open it again and then you've got your whole editor or everything is already there set up for you and that's great, right? Because now if you have multiple dev machines you have an easy way to get clone your .files repo, run the little script, sim link the files and now you have your entire dev setup on whatever machine you want. You can do that in a server, right? You can get clone your .files, run a little script, sim link them and now your production server has exactly all the same get shortcuts and things that your dev machine has. It makes them completely portable, which is a really nice thing. This is RCM, right? It's just a very small, minimalist program that sim links your .files for you. You could also use a gem, right? I was picking around my friend, Megan2's .files not long ago. That's what the other fun thing is that like a lot of your friends and notable Rubyists and people you follow on Twitter also often have their .files and one of the fun things is checking out other peoples. She uses a gem called Homesick which I didn't know about. Oh cool. It's just a Ruby gem that does exactly that. It sim links your .files into your home directory. Pretty clever. You can also write your own script, right? And that's sort of the fun in all this is doing some of these things on your own. So for instance, I found this one in Jess Brazil's .files. She's a dev evangelist from Microsoft. Does a lot of Kubernetes and things like that.  So all this does is loop through your .files directory and sim link it once again. So however you wanna do it, do it that way but that's kind of the fun. Part of the fun is learning to do this stuff on your own. And with .files there are kind of two ways to go, right? You can fork them or you can create your own. So here's Sam Fippins. Sam is the maintainer of RSpec. I gave this, first gave this talk at RubyConf Philippines and he's the audience so I was trolling him a little bit. But he forked someone else's .files. So Homesick, Homes.files, right? And in that way there are whole sets of .files out there and you can just fork them, make them your own, start to update them and install them or you can choose not to, right?  I thought that was kind of funny. But then you find cool stuff in other people. So here's one I found which is like, this was in Sam's prior see, right? There's a method here called rye, right? And what you can do with this I thought this was kind of neat. Let me get back to where I was. Boo JavaScript, sorry. Yeah, I found this method called rye. Oh my gosh, let me just do this. I think I can do this through pry. Okay, so and it gives you this little magic ability. You just do this and you type rye and you get the documentation for that class. This is what it looks like up at the top. Oh, sorry. So anyway, what I did is I typed object.ry and it spit out the whole documentation for that. You can also do something like this and you get the documentation for two string. So I don't know. Personally, I don't actually use this one because I Google my dots. But these are the kind of interesting and fun things you find when you start poking around in other people's dot files. Cool pry tricks and Ruby tricks. So the question then becomes to fork or not to fork.  On the other hand, if you build your own you really are in for a learning experience, right? You get to learn bits of shell scripting, right? Which comes in useful later. You get to make as many mistakes as possible and then fix them. So it's kind of up to you. There are whole repos out there with just links to awesome dot files and cool resources that you could find. I personally forked mine. So I forked the thought bot dot files which is a massively complex and really powerful suite of dot files from thought bot folks. This is sort of like graduate level dot files I feel like. If you're looking to learn this might be a little too much, right? But if you just want like a really powerful set and really just make your shell really awesome it's beginning without a lot of effort then this is a great place up to you what you wanna do. One quick warning, don't check in secrets, right? A lot of us have various things, SSH keys and things like that, right? In our dot files, don't check those in. What I do is I put this little snippet in my zsrc. This says look for a file called dot local rc and if it exists, source it which is to say load it. And then what you do is you get ignore local rc so you cannot accidentally check that in and push it to your public repo. That would be a bad idea. So in the end of all this, go experiment. The fun here is not only getting a better environment, it's hacking your system, it's breaking your system, it's fixing it again, it's staying up late trying to make the ultimate tmux config or the ultimate psqlrc even though it's a complete waste of time, it's not really because you come out on the other end being competent in your shell, having better tools, having a new hobby, being able to trade this and hopefully possibly in the end feeling more confident in ops, more confident in servers, building a little more courage, courage to experiment with other cool things that the command line leads you to, things like Docker and Kubernetes and feeling comfortable in most environments. So thank you, I've got a few resources here. I've linked to some articles, I will tweet these slides, follow me on Twitter. I'm Brad Irani, I work at Procore in beautiful sunny Southern California. If you like the weather here, come talk to us. We're hiring all roles, Ruby, Android, machine learning, security, DevOps, you name it. I'd love to chat with you about that if you are interested. We've got a beautiful beach view from the office. If you're somewhere cold, move to Southern California where the weather's warm and the forests are on fire.  Cool, thank you.


giant satellite station, and I hope it's clear, firstly how beautiful the nature is but you can see there's like a serious, serious really station.


Good evening and thank you for joining us on Y25 for news updates. My name is Patricia Muriuki and tonight we talk about relationships. We're trying to see, we have Valentine's which is coming up on Friday so I'm sure people have expectations but before we really expect what is our partner going to do for us or what is your husband, that is if you're married, what is your wife, what are they going maybe to give to you. We really like to talk about relationships in the 21st century which is our topic for the night. We're trying to see how do people, how can couples make sure that they have, they're dealing with conflicts in a healthy way. We're trying to see how do people handle communication in a relationship. We talk about compromise and also how do you know when it's time to get out probably of a toxic relationship. You can be part of this conversation tonight by sharing your views and comments on our social media platforms that is on Y25 for channel, hashtag Y25 for news. You can also reach me at Patricia Muriuki. To help us talk about this topic tonight we have very good and I would call them my perfect panelist for this topic and we have Mrs. Hannah Lee who is a relationship coach and an entrepreneur. She has been married for 18 years which means if you're watching us tonight you're in the right place because you'll have tips on how do you also make sure that your relationship is going to last long, even a marriage, how do you also make sure that your marriage is going to be a long term and a very healthy and enjoyable experience. We also have Caroline Stanley who is an entrepreneur and you're going to be joined in a very short while by MC Sefa who is an event planner and the CEO of MC Sefa Event Solutions, a corporate and entertainment MC. Thank you very much guys for finding the time to come today. I don't know if you have expectations for Valentine's which is on Friday. Caroline expectations? Of course. Okay. How many years have you celebrated Valentine's? 18 years. Any expectations for your 18th? This for me I have a lot of expectations. Wow. But I'm a widow and it didn't stop there because now I have a relationship with God and I'm not lonely, I always communicate with Him so I'm confident in that. Okay. So before we really now get to dive in all those things, I would like to talk to you because you are a relationship coach, you have been in a relationship in a marriage for a very long time. What really defines a good relationship? A relationship, when you get into a relationship before even a marriage, the person you're getting relationship with has to become your friend. Where about, you share everything, you talk about everything, there's no secret in your relationship and that's where you start to have a relationship. Okay.  Okay. Caroline, for you, the millennials, how do you define or what to you is a definition of a good relationship? First of all, for you to be in a relationship, you first have to understand the sign languages of your love, these the words, the second one we have spoken words. We have the spoken words, we have gifts, if your lover, ama your partner love gifts, ya ni there are so many languages of love, so many signs of languages of love, so you have to understand your lover's language of love. Okay, we've had Caroline mention the five languages of love, we're going to be talking about that, the five love languages, sorry. So, ya, you can look at, you can use that camera there. You've been filming me and I don't know. It's all right, it's all right. So, we have valentines just around the corner and people have expectations. Sometimes in life we talk about do not have expectations but we cannot stop ourselves from expecting. I would like to start with you Mrs. Hannah. What has some, is it all right, let us first start, is it okay to have expectations? Yes, you need to have expectations from that relationship. Otherwise, why are you getting into it? You need to have that expectation of what you're looking for in a relationship and the man that you've met. What quality are you looking for in that person? Is it just love or is there anything else? Is it the future? Are you looking the relationship into a future? So, there is all that to look at in the relationship. Is it a one night stand or is it a long term? Is it a future thing? You need to look at all that. Is it a casual relationship or is it a serious relationship you want to get into? Okay, Karu for you. In terms of expectations, as you expect from your partner, okay, are you in a relationship? We may be talking about it and probably you're not in a relationship. You can't talk about certain things. Yes, I am. Okay, so do you have expectations for Valentine's Day on Friday? Of course, of course, of course. So as you expect, what do you also make sure, what do you do to make sure that as you expect from your partner that you guys are able to create a balance or that it is not just about me waiting for you to gift me, but as a girlfriend that I can also gift you as my partner? First of all, when you are in a relationship, you have to understand your partner as I've said, the sign language. So, for me, I expect gifts because mine is gifts and for him maybe expect time because he's time, amawads. So, yes, I have a lot of expectation and of course, you have to understand your love as emotions. We are in that relationship, we have to balance the emotions. He has to balance mine, I have to balance his emotions. So, in a relationship, it's a way, it's a two-way traffic. So, yeah. Okay, I can see MC Sefa has arrived. So before he gets to join us on set, I would like to ask you, Mrs. Hannah, what is the importance of getting to understand your partner's love language? We have to be open with one another and you share the talk. What do you like about me? What do I like about you? Could be a smile, could be the way you talk, could be the eyes, I don't know the nose, I don't know. Could be even the teeth. Somebody can just like to see you smiling.  And, you know, that's how the relationship really starts. You admire a person, maybe the personality, are they loud, are they cool when they talk? What are you looking for in that person? Are they well behaved when they, or is it pretending until you get to know them, then you see the real colors. There is all that to look into. You have to ask each other, question, what do you like about me? What did you see in me? And you start off like that.  So you really have to make sure that you understand if you are able to relate so well. Understand each other. Exactly. Okay. So I would like us to talk about communication in relationships, which is something that maybe people most people struggle within a relationship. But when we talk about communication in relationships, what do we mean by that? You see, you cannot have a relationship without communication. You have to talk to one another. You could be, maybe you've just, you could have just, maybe you've just met and you're getting all these goose bumps. Yes. Like, should I call him? Should I not? Should I not? Should he make a move? Or should I make a move? There's all that. But somebody has to start somewhere. And then you build up on that. And you get to know slowly, slowly, you get to know each other. What does that person like? And I see some people, especially young people, when they start a relationship, they get so insecure, some of them, and they get emotional too much. You need to have a balance. Don't keep on calling him every minute. Or if he doesn't call, you start demanding. Why don't you call me? Things like that. We break that relationship so quickly. You need to be confident with yourself before you meet the other person. Meet the other person. You have to be so sure of your, not that person, you.  Not nagging every minute, a phone call, demanding. None of that. Why don't you start nagging the other person who will run away? Okay. Thank you very much. Mrs. Hanakaili moved to your right. Yes, so that we create space for MZ Sefa. Thank you very much Sefa for joining us. You've met us in the middle of the conversation, but we're talking about relationships and briefly about it. And Feb, kuna valentine, tama ni men's conference. Where are we going? Where are we going? Thank you very much for having me. Sorry, I was a bit late. It's okay. Ni kupanga men's conference. Okay, okay. So easy to play from... You're an event planner. You have that to make sure that it happens. Yes. I believe valentine is there and it's quite an important date to celebrate love, the aspect of love whereby you appreciate not only the person you're in a relationship with, but also people around you, people who you maybe appreciate or people who are less fortunate. So yeah, valentine exists and also men's conference exists. Okay. So you balance. Nsi chacha na watu eti men's conference na wana panga valentine skama sepa. So you found Mrs. Hannah you found Mrs. Hannah talking about talking about communication. But before I get to bring you on that, I would like to ask Carol. We know communication is a very big aspect of a relationship. What do you think maybe are some of the things that young people are not doing that is hindering communications in relationships? What could be our thoughts as young people when it comes to communication in relationships? Uh, some of us let me say we don't have for you to be in a relationship your lover is your best friend. So most of us you're not open. Yeah, we lack the openness. You have a problem. You don't want to share it with your love. But the moment you share it with your partner that thing is going to be solved. So the thing is most of us we are not open. Yeah, that's the aspect in communication. You have to be open. You have to tell your lover this is the problem. I need this. I need your time. I need your love. Yeah, you have to talk. Okay, so young people we really need to be to be open. Sefa, your thoughts on what young people probably are not doing that is making communication a challenge in relationships? Well, first I would say that we are not valuing the aspect of relationship that we should be valued because there's a lot of value into it and there's a lot that comes into a relationship than just having someone to maybe text or maybe talk to through tough times or maybe through nice times there's more to that. You need to create a bond with that person and you need to be able to be to put your thoughts together and understand what you really want and what they want so that and see whether it can work together. So I believe that's the first aspect that as youth we need to look into and also the aspect of communication as she says that we need to learn how to communicate everything that we believe is of importance in a relationship. We need to learn the ways of communicating and the ways of solving issues because there's no relationship that is perfect. We have to go through challenges. So we're going to be taking a very short break but when we come back we're going to look at how do people deal with conflicts in a very healthy way in relationships so please don't go far away stay with us on Y254 news. Thank you for staying with us on Y254 news and tonight we're talking about relationships. We're trying to see to really understand so far we've talked about what really defines a good relationships. We've talked about communication so if you're joining us right now you can also be part of this conversation by sharing your views and comments on our social media platforms that is on Y254 channel ashtag Y254 news you can also reach me at Patricia Morioki. So Karo as you continue with this there's one thing that is very important when you're picking a life partner and that is what are the qualities that one is looking for. So for you what do you think are the what do you think is something that young people out here that is young girls and young boys should prioritize as they look out for someone they want to spend time with. When you're choosing a life partner you have to look at so many so many aspects you have to look at someone let me use kisili umtum na faana someone whom if you had you know how to solve your problems and someone whom you can associate with so well. So when choosing a life we all have different views when you want a life partner maybe some of us like tall men others love the short men so we have different views when we're choosing life partners so you have to understand what you like and what you love because that's a it's a long term it's a long term thing so you have to be so careful choose the man you want and choose the man with the character you want. Okay Mrs. Hana I mean for you to have had a relationship or a marriage that lasted for 18 years it must mean that there's really something that you are looking out for and you found it you found it in your in your late husband so would you talk about some of the things that you prioritized and some of the things that stood out for you to choose him? Well the man that I met was a little bit older than me and he was very mature he was a widow a widower right and when we met he used to make me laugh so much every little thing he just cracks jokes and for me that was that was something it wasn't material or anything but we loved each other we would we never used to have telephones like you do now but we would make time we meet over the weekend we go for lunch sometime we go to the club in the current club to just watch he was a golfer I would watch what he was doing playing golf and just communicate with him when we are not together I would you know call him on that phone and say I've missed you you know and stuff like that you know men it's not just a woman even men like to hear that you're telling them I love you they like that so much women are too sometime they forget to tell their men I love you another secret I had I used to maybe I'd go into his court and I would make a little card and I'd put some really nice words and put it in his pocket wow that's so beautiful so when he goes to work he would pick something from his pocket and when he touches it's me who is talking to him so you know that puts a smile in his mouth the next thing in his face the next thing I see flowers are coming home so you have to kinder I hope people are taking that note your relationship you have to kinder your relationship and slowly you grow up together and I'm not going to say it was all roses sometime you have your moments but the most important thing in a relationship also I must mention is financial stable when you don't have money forget it whether you are in a relationship or not you know you can't do without it so you have to have a balance because you have to live you have to eat you have to pay bills you have to take care of children and you have to balance so people should get their money right that I love you I love you I cannot eat love okay we'll be coming back to talk about how to deal with conflicts but before we get there I'd like to talk to self about compromises that people have to make in relationships what do you think really is extreme how far can we stretch when we talk about being that I have to compromise for my partner I would say that relationship in a relationship you get to lead sacrificially in a way that you get to be the one you get to sacrifice for the relationship but is that extent that you can really give in terms of do you get back what you give if I sacrifice something maybe a nabit that I have or maybe something I'm used to to save the relationship will I get an equal treatment from the other side I think we need to learn the balance between that we need to know how far can I go for a relationship and how far how far is enough like how far can I go till like this is too much I'm giving so much and getting very little like I believe for every aspect of sacrifice you need to get an equal measure measure of sacrifice from there that's from your partner I believe that's that's the part where you appreciate and also we can hear from a very and I really love everything that Mrs. Hanna is talking about I hope people are taking notes so Karo let us talk about managing conflicts in relationships because we have very short time left but this is a very sensitive issue it is a very big problem we have seen very many marriages fall apart where a misunderstanding is going to make the wife kill the husband and the children so how do we fight because conflict is a part of life we cannot avoid conflicts in relationships or in marriages Karo, what do you think for young people watching you tonight you've seen your relationship how do you probably when you have some rough times with your partner what are some of the best ways that you guys approach to make sure that you fight in a healthy way let me not say fight like you have to resolve issues in a healthy way okay first of all when there is communication everything will fall will fall into place so if you communicate with your partner everything is going to flow so when we have issues you can talk to we have the counsellors we have our moms yes yeah me mostly I talk to my mom we have we have so many people can help you so the old thing is about you talk about it don't hide it if he has wronged you go tell him my love you've wronged me if you have done this go tell him you've done this and I need this yeah so the old thing is about talking to someone yeah and the someone if you talk to someone then everything will yeah okay mrs. Hannah have been been in a marriage for 18 years I'm sure it was not a bed of roses there are times you'd wake up and you're like how did you manage to go through these tough times what are the best approaches what is the one thing that made you despite the fact that this is a person in a different personality that you're meeting no matter how maybe for sometimes how no matter how angry you could be with them you still got to a point to a buy it's okay it's about us and it's time I think for us to talk about it what made that never get away in a relationship you see when you are hot your mood changes you sometimes you don't even want to see that person but you have to swallow your pride and just be very calm and you just make the first step like I'm sorry the words I'm sorry is very important in a relationship no matter what happens you have to learn to say I'm sorry and you have to say please forgive me those words they are very powerful to amend where the you know where the rope has broken because you want to continue so you have to learn to swallow your pride I know men they don't like to say sorry women are the ones who are always say oh I'm so sorry even for deans they do not do I'm so sorry but men they always have this pride but it doesn't matter even if he's wrong be nice let me tell you he's going nowhere if you know those secrets of saying I'm sorry say thank you those words they are not just there to read when you are in school use them practically and I'm telling you your home will be heaven on earth okay okay if you want your home to be heaven on earth use the words you learned in school very well so say for us this conversation comes to an end in terms of conflicts what should men do better we've had like most men don't like say sorry say sorry doesn't mean you're weak say sorry does not be legally as a man so what do you think now moving forward young people out there who are watching us tonight a young man in a relationship what do they need to do better to make sure that you have in healthy relationships and long lasting relationships well first of all sorry that men don't like saying sorry I believe that it's important that men take initiative the initiative of being the heads of a relationship it's very controversial that when you present the case of the man is the head of the family or maybe the head of the relationship it's very controversial ladies will say you're being you're looking down upon us but it's supposed it's meant to be in a very guided way in that you're supposed to take initiative the woman is the heart of the relationship and the man is the head of the relationship and that you should be able to take action you should be the one to state the way forward you should be the vision bearer of the relationship in consideration of everything that your partner is saying of course yeah so I believe we need to be ready to take initiative and be ready to be the heads of the relationship okay I really like the comments that I'm getting tonight I hope really people watching us are also feel what I'm feeling because I feel there's a lot of impact so I'd like to take final comments and final thoughts on this topic from each one of you we're going to start with Yukaro your last words to young people watching us tonight as far as relationships are concerned yes to the young people like me I just want to tell you if you want to get in a relationship first understand what you want in that relationship if you want it to end in a marriage or you want it you're there just for fun so first of all understand what you want in a relationship before getting into it okay thank you very much Sefa would like to have Mrs. Hannah give a comment in the last turn Sefa what are your final thoughts on tonight's discussion maybe say to the young fellow young ladies and gentlemen out there that when you're choosing a partner or maybe it's time to choose a partner you need to come up with five factors that you really want to have in a partner then you need to narrow down to three which are must and to which will be a next one yeah you can compromise on this one if you use that aspect I believe you'll be able to come up with someone meet someone or maybe get someone who is okay with you and maybe you can work together but don't be desperate it's never it's never that important sometimes okay so Mrs. Hannah from our mother what would you say to your daughters and sons tonight as you wind up I would say to them take your time to look for who you want to spend your life with be a prayerful person and God will lead you to tell you this is the right person for you yeah okay thank you very much and for me my thoughts is that a very great friend of mine told me that while in a relationship you should always they made me do this you have your left arm and then you have your left your left hand and your right hand so if your partner the flaws in your partner these are the flaws in your partner and these are the strengths so the strength in your partner when you feel that they are weak at this point take your strength and you cover them so what I like to say today to young people because we are out there and we in relationships and time is gonna come and you're going to get into marriages and with families always know that it is your responsibility to make sure that you cover your partner that is all we hand for you tonight and as valentine is coming up I hope that you're going to celebrate if you don't have a boyfriend or a girlfriend send flowers to your mother send flowers to your dad to your friends to your favorite colleague yeah and that is all we hand for you tonight my name is Patricia Morioki do have yourselves a very good night


I think this actually completed our one electron problems and we eventually moved to many electron problems and from where I will actually start, although we did a little bit of many electron problem, this course I will repeat many of the things that we did for many electron problems. So for the many electron problem, I first said that we need methods which are approximate because the problems cannot be solved and just as I told yesterday because of a term which is called 1 by R ij and I do not know if I mentioned yesterday, but the many electron problems let us say 2 electron H 1 on 2, if you write down the Hamiltonian, you have a kinetic energy of the electron 1, remember the helium problem that we did, the kinetic energy of the electron 2, again I am writing these in atomic units, these are all in atomic units. So I do not write h cross mass etc., of course it is a reduced mass actually but that is okay and then you have what is called the nucleus, nucleus so z divided by R 1 minus z divided by R 2, where R 1 and R 2 are distances plus 1 by modulus R 1 minus R 2 and we noted that so this is for the helium atom, so in particular for helium atom but in general we can write for any molecule or so, we noted that a part of this Hamiltonian can be written as a sum of 1 electron and 2 electron Hamiltonian uncoupled which means I can invoke the non-interacting theorem to solve that Hamiltonian, the wave function being product, energy being sum, but the problem really is this part, that this is a part which cannot be split as a function of 1 and function of 2, mathematically it is not possible. So you cannot write this term 1 by modulus R 1 minus R 2 as any function of R 1 plus any other function of R 2, let us say F 1 or F 2 in general, so this is not even possible, if it was possible mathematically then I would have put this R 1 function with 1, R 2 function with 2 and the entire problem would have been exactly solved, so the cracks of the problem is that this is not even mathematically possible, of course a lot of people have made attempts to write, can I write this as F of R 1 plus, some F of R 1 plus F 2 but it is not simply not possible, you can do a good job of it but that is an approximation, so this is where the problem of many electron theory starts that I cannot solve it exactly, so many of the solutions have to depend on approximate methods and two very important approximate methods that we did were actually variation method and perturbation method, and I remind you I have done this in great detail, so I do not know how whether I should again do in the same detail in this course but probably I will do this because that is I think an important part when I start I will at least repeat most of the things, these are two very important approximate methods which are actually used to solve the many particle problems, there are many other schemes but the helium atom is an example but you can have any many particle problem like hydrogen molecules, any other molecule which has more than one electron, you will end up with a problem where there is a term which is a non separable term which cannot be written in this manner and hence the problem is not exactly solvable, so I might mention that this is where the basic problem of solution of stationary state of the Hamiltonian starts, although I told you although we are interested in solving only the stationary states of the Hamiltonian, even that solution is not possible, so what we will be discussing further in this course is how to solve for many electron problem A psi equal to E psi and this has been the quantum chemistry for 70 to 80 years, how do you solve A psi equal to E psi for many particle problem where Hamiltonian is non separable, so far the problems that we have been doing were trivial problems, we learnt lot of quantum mechanics but the solution of A psi equal to E psi was a trivial problem some mathematical exercise of course I am not saying they are trivial but some mathematical exercise but doable exercise, when you scale particle in the box from 1D to 2D to 3D they were uncoupled, so there is no problem, when you scale harmonic oscillator to 1D, 2D, 3D they were uncoupled, for the hydrogen atom even for the hydrogen atom this solution could have been done and it was not very difficult to do this, the problem came when we actually want to solve the many particle problem where there is a genuine term which is non separable and hence the problem can actually not be solved. So we have to resort to approximate methods and the two approximate methods that we discussed were variation and perturbation and we have to see how to integrate each of these approximate methods to make solutions of this, so this is where we will start, we will also look at what kind of symmetry the wave function should have and this is something again we have said in the last class that they must be either quantum particles must be either bosons or fermions or electrons or fermions, the anti-symmetry is later determined, we have done all that up to that point but I think we will revise this very quickly, so we will see how to handle this problem because that is always, this heterogeneity is always there but we will try to see because then I could start but maybe I will lose another one or two classes to bring you up to that point, that is okay, I will do that in the next class. So anyway today we will close, all right.