
I 'm Jessi , and this is my suitcase . But before I show you what I 've got inside , I 'm going to make a very public confession , and that is , I 'm outfit obsessed . I love finding , wearing , and more recently , photographing and blogging a different colorful , crazy outfit for every single occasion . But I do n't buy anything new . I get all my clothes secondhand from flee markets and thrift stores . Aww , thank you . Secondhand shopping allows me to reduce the impact my wardrobe has on the environment and on my wallet . I get to meet all kinds of great people ; my dollars usually go to a good cause ; I look pretty unique ; and it makes shopping like my own personal treasure hunt . I mean , what am I going to find today ? Is it going to be my size ? Will I like the color ? Will it be under $20 ? If all the answers are yes , I feel as though I 've won . I want to get back to my suitcase and tell you what I packed for this exciting week here at TED . I mean , what does somebody with all these outfits bring with her ? So I 'm going to show you exactly what I brought . I brought seven pairs of underpants and that 's it . Exactly one week 's worth of undies is all I put in my suitcase . I was betting that I 'd be able to find everything else I could possible want to wear once I got here to Palm Springs . And since you do n't know me as the woman walking around TED in her underwear -- ( Laughter ) that means I found a few things . And I 'd really love to show you my week 's worth of outfits right now . Does that sound good ? ( Applause ) So as I do this , I 'm also going to tell you a few of the life lessons that , believe it or not , I have picked up in these adventures wearing nothing new . So let 's start with Sunday . I call this shiny tiger . You do not have to spend a lot of money to look great . You can almost always look phenomenal for under $50 . This whole outfit , including the jacket , cost me 55 , and it was the most expensive thing that I wore the entire week . Monday : Color is powerful . It is almost physiologically impossible to be in a bad mood when you 're wearing bright red pants . ( Laughter ) If you are happy , you are going to attract other happy people to you . Tuesday : Fitting in is way overrated . I 've spent a whole lot of my life trying to be myself and at the same time fit in . Just be who you are . If you are surrounding yourself with the right people , they will not only get it , they will appreciate it . Wednesday : Embrace your inner child . Sometimes people tell me that I look like I 'm playing dress-up , or that I remind them of their seven year-old . I like to smile and say , " Thank you . " Thursday : Confidence is key . If you think you look good in something , you almost certainly do . And if you do n't think you look good in something , you 're also probably right . I grew up with a mom who taught me this day-in and day-out . But it was n't until I turned 30 that I really got what this meant . And I 'm going to break it down for you for just a second . If you believe you 're a beautiful person inside and out , there is no look that you ca n't pull off . So there is no excuse for any of us here in this audience . We should be able to rock anything we want to rock . Thank you . ( Applause ) Friday : A universal truth -- five words for you : Gold sequins go with everything . And finally , Saturday : Developing your own unique personal style is a really great way to tell the world something about you without having to say a word . It 's been proven to me time and time again as people have walked up to me this week simply because of what I 'm wearing . And we 've had great conversations . So obviously this is not all going to fit back in my tiny suitcase . So before I go home to Brooklyn , I 'm going to donate everything back . Because the lesson I 'm trying to learn myself this week is that it 's okay to let go . I do n't need to get emotionally attached to these things , because around the corner , there is always going to be another crazy , colorful , shiny outfit just waiting for me , if I put a little love in my heart and look . Thank you very much . ( Applause ) Thank you . ( Applause ) 