My Final Portfolio

We’ve made it to the end of the semester, and to the end of finals week! For my final portfolio, I was to take a look back at four of my projects and figure out a way or ways that I could improve them in some way. 

Twitter Bot Revisited: 

At the beginning of the year, I created a Twitter Bot with the help of Cheap Bots, Done Quick that automatically tweeted out random statements that would be “relatable” to pretty much everyone. I found it so fun to do this project, and definitely wanted to do it again! 

Again, I used Cheap Bots, Done Quick, but this time, I decided to spread a passion that I have. I love to write and I love to write anytime I can. It’s my creative outlet. I took Creative Writing back in high school, and LOVED it. Everyday, we had a writing prompt to start the class off. It was always something interesting. I decided that I would create a Twitter Bot that would tweet out random writing prompts that may or may not make sense. They are also pretty silly, but I guess when you’re working with code it’s not all going to be super uniform in terms of grammar, storytelling, clarity, etc. I have the program tweeting out prompts every 6 hours. Below is my code: 

{
	"origin": ["In #geography#, #first# #actions# in a #adjectives_adverbs# #locations#. #transition# #youdo# #celebrities#. #transition# #surprise#."],
	
	"geography": ["Las Vegas", "Los Angeles", "Chicago", "Paris", "Rome", "England", "New Zealand", "New York City", "Mexico", "Canada", "Antarctica", "Ireland", "Scotland", "Egypt", "China", "Japan", "Russia", "the United States", "Madagascar", "Brazil", "Peru", "Iceland", "Greenland", "Texas", "Fredericksburg, Virginia", "California", "Australia"],
	"first": ["You are", "They are", "He is", "She is", "The dog is", "The dogs are", "The cat is", "The cats are", "The doctor is",  "The police officer is", "The teacher is", "Your house is", "Your car is", "Your party is", "Your school is", "The lights are", "We are", "Kids are", "The summer is", "The trees are"],
	"actions": ["hiding", "whispering", "singing", "dancing", "shaking", "speaking", "screaming", "yelling", "drinking", "sleeping", "reading", "watching TV", "sitting", "texting", "chasing", "praying", "decorating", 
"driving", "purchasing", "stealing", "giving", "eating", "playing", "drawing", "falling"],
	"adjectives_adverbs": ["beautiful", "lovely", "scary", "dark", "bright", "corporate", "dirty", "clean", "empty", "full", "big", "small", "tiny", "humongous", "gross", "welcoming", "cozy", "breezy", "cold", "hot", "comfortable", "so overrated", "haunted", "Christmasy", "snowy"],
	"locations": ["house", "school", "library", "store", "nook", "store", "bar", "restaurant", "movie theater", "tunnel", "tent", "box", "bank", "police station", "hospital", "college", "phone booth", "hotel", "abandoned building", "bunker", "ghost town", "bookstore", "coffee shop", "Walmart", "Target", "vending machine", "neighborhood", "parking garage", "city hall", "park", "pool"],
	"youdo": ["You come across", "You run into", "You meet", "You notice", "You wave hello to", "You see"],
	"celebrities": ["Barack Obama", "Donald Trump", "George Clooney", "Chris Evans", "Chris Hemsworth", "Liam Hemsworth", "Robert Downey Jr.", "Mark Wahlberg", "Will Ferrell", "Adam Levine", "Zac Efron", "Ryan Reynolds", "Justin Bieber", "Channing Tatum", "Brad Pitt", "David Beckham", "Ryan Gosling", "Dwayne Johnson", "Justin Timberlake", "Chris Pratt", "Jake Gyllenhaal", "Leonardo DiCaprio", "Johnny Depp", "Tom Cruise", "Ben Affleck", "Ashton Kutcher", "Kanye West", "Robert Pattinson", "Drake", "Daniel Radcliffe", "Jon Hamm", "Matthew McConaughey", "Ellen DeGeneres", "Beyoncé", "Taylor Swift", "Rihanna", "Kim Kardashian", "Megan Fox", "Jennifer Lawrence", "Jennifer Aniston", "Julia Roberts", "Miley Cyrus", "Katy Perry", "Angelina Jolie",  "Ariana Grande", "Emma Watson", "Sandra Bullock", "Jessica Biel", "Oprah", "Anne Hathaway", "Julie Andrews", "Mila Kunis", "Demi Lovato", "Blake Lively", "Selena Gomez", "Michelle Obama", "Hilary Duff", "Hillary Clinton"],
	"transition": ["Next,", "All of a sudden,", "Then,", "Out of nowhere,", "Next thing you know,"],
	"surprise": ["the phone begins to ring", "your phone begins to ring", "your alarm starts to buzz", "the alarm clock starts to buzz", "you are passed a note", "a sign illuminates", "music begins to play", "you hear whispers", "a storm rolls in", "everything goes black", "you wake up", "the radio turns on"]
	

}

One of the combinations I saw this morning on the Cheap Bots, Done Quick page was: 

“In China, The cats are singing in a bright abandoned building. Next, You wave hello to Jennifer Aniston. Then, your phone begins to ring.”

Some examples of Tweets that have already posted: 

As I said, many of them are extremely strange, however I do find some of them hilarious. 

I gave the name “Wrighte Now!” to the twitter bot because I thought it was a play on words. Write now, right now! Combined. Boom. 

(I also believe that this code will definitely print out over 100,000 iterations. I did the math last night and I think I did it correctly.) 

(27 * 20 * 25 * 25 * 31 * 6 * 58 * 5 * 12 = 218,457,000,000 — Each number represents how many variables are in each category.)

Remix Project Revisited: 

Another one of the projects from the semester that I really enjoyed and wanted to keep experimenting with was my Remix Project. The first time I did it, I had a poem print out that included quotes from TV shows such as FriendsThe Office, and the movie The Fault in Our Stars. The result was pretty great, in my opinion. Maybe I’m just biased. This time I wanted to do something similar but I wanted it to include more possibilities! I had only used about 15 quotes from each show last time, and this time I wanted to put more effort into it. 

This time, I was going to use Jupyter Notebooks with Python again to create the same format of the poems I made last time, however, there would be a lot more for the computer to choose from. I started out by researching the top 100 songs of 2018, and after finding my answer from Billboard, I began to look up the lyrics for every song. I looked through the lyrics of each song and chose one line from each of them. Many of the songs were quite inappropriate, so I had to really dig for something appropriate. Finally, I had 1 lyric from 100 different songs. Next, I chose to look up the top 100 songs from the year I was born, 1996. Thanks to a website called Music Outfitters, I was able to find a list. Again, some of these songs were inappropriate, but I was still able to find 1 lyric from all 100 songs. Lastly, I decided to look up the top songs of all time. I only chose 100 even though there are WAY more than 100 top songs of all time. I had to look in many different places because numerous sites would just give me “20 of the Top Songs of All Time” or something like that. Songs that I used were anywhere from the 1980s, 1990s, 2000s, and present day. At last, I had a major long list of 300 lyrics. 

I plugged in the code in order for the computer to choose from each list at random. Last time, I only had it print out 5 lines from each group, but this time I decided to have it print 100 times from each group, since each group had 100 choices. I’m sure there is quite a bit of repetition but I think that that makes it more fun! 

You can find the full code here on my GitHub page!

Here are just some snippets of the resulting poetry:

I think it sounds pretty great! 

Glitch Project Revisited: 

Another one of the projects I really enjoyed this semester was the Glitch Project. If you remember, I used pictures of my childhood. I got some pretty shocking results. I really wanted to do it again, but with different pictures. 

I decided that I wanted to use pictures that gave you a different perspective, literally! Many of these images were aerial view images I found on Unsplash. It was cool to look at all of these pictures that were basically just bird’s-eye-view focused. How many times do you get to see these perspectives, yourself? I doubt you said often. I chose to use Text Edit to work with Databending. I had wanted to use Audacity again, but for some reason it would not allow me to. I followed all of the instructions from Dr. Whalen’s videos and had even watched other YouTube tutorials. It still would not let me work with it no matter what I did. I was very frustrated as I really liked the results I got when using Audacity. However, the results I got from TextEdit were pretty great too. This time, I aimlessly cut and paste random chunks of data. This was perfect because it really began to glitch the more I chose at random. Some images came out awesome and some turned out to where you can’t really tell what it was to begin with. 

After transforming 4 images with TextEdit, I decided to go back to Pixel sorting which I did using my Python terminal in Jupyter Notebooks. I loaded the images into the pixelsort.py software, and it would sort the pixels for me following any instructions I gave it. Some of these results were a little more underwhelming than those I had last time, but they were still pretty cool in the ways that it avoided some spots and glitched over others. It felt more uniform this time. I created four more glitches with this method. You can see the code I used to do this on my GitHub page!

Here are the four that were glitched with Text Edit: 

Here are the four images glitched with the Python terminal and pixelsort.py:

I really love how all of these turned out! All of these pictures, I believe, tell quite a story. For example, you’re on the top of the Eiffel Tower and you look down and everything is just a blur, literally, or you’re crossing the Golden Gate Bridge and there is this large, pixelated wave ahead of you. The pictures that were created using TextEdit remind me of film. When I was a kid, my mom would take pictures all the time, and we had a film camera, and we would develop them and they would look oily and glossy and you had to hold them up to the light to tell what picture was what. 

NaNoGenMo Revisited: 

Guess what? I wrote another >50,000 word novel with my computer! Last time, I combined stories such as Cinderella, Mary Poppins, Nancy Drew, and more. This story turned out pretty well, but it wasn’t my absolute favorite! 

I decided I really wanted to improve it, so I did! I decided to include around 10 chapters from different banned books! I used novels such as Catcher in the Rye, Grapes of Wrath, The Great Gatsby, The Awakening, To Kill a Mockingbird, and one more short story that I don’t believe is banned but one that I really enjoyed in middle school, The Landlady. I named this new novel: The Banned Ones. I remember all of middle and high school learning about banned books and having Banned Book week. I read all of these books in high school and middle school, and found them pretty interesting, to be honest! I combined all of these stories into one text file. 

Next, I created the code that resembles the original code for my original NaNoGenMo novel. 

I then had the final product! Enjoy! 

I have really enjoyed this class this semester, and I’m honestly sad that it’s over. I have learned and done more than I ever thought I could! 

Tik Tok on the Clock

For our last coding project of the semester, I was to create a clock using p5.js.


When I first started this project, I had a bunch of ideas in my head. I had looked at numerous examples of other clocks that had been coded using p5.js. When I finally had landed on an idea that I wanted to work with, it turned out to be way too difficult. I decided to go a more simple route. I was just going to code a clock that would be a digital clock that would display the date in the format ‘mm – dd – yyyy’ and the time in the format ‘hh:mm:ss AM/PM.’ There was quite a lot of trial and error when it came to this project. The function ‘hour()’ in p5.js uses a 24-hour clock instead of a 12-hour clock. Military time is great, but I’m so used to the 12-hour clock that that’s what I wanted to use for my project.

I had created a square that I then colored navy blue. I then made all of the text the same font, size, and color. It has a very uniform look. Maybe a little too uniform? One of the original ideas I had had was to create a cube that would rotate and display the hours, minutes, and seconds on each side of the cube. I had made it to the point where I had a cube that rotated and changed colors, but I was then stuck with trying to put the clock face on it.

I coded for the time in p5.js as it would recognize the time on my computer and use that as the reference time. I had the hours, minutes, and seconds ready, but instead of the minutes showing as :01 or :05, they would show as :1 or :5. I had to then add to the function a “0” that would be added on if the minute or second digit was less than 10. That error was fixed. Now it was time to work with the 12 hour clock. Quickly, I was able to create a clock that displayed the time in 12 hours rather than 24 hours. I only had to write a function that subtracted 12 from the hour itself if the hour, itself, was greater than 12 when set in military time. Finally it was working! I then added the function to print AM or PM for when appropriate.

I drew on many different examples that helped me change the look of my clock. I then decided that the date and time, alone, were too boring, so I had first decided to use an inspiring quote. I originally had written the lines “Time is priceless. Be here now.” It felt a little too cheesy so I went with something even more cheesy. I chose to use lyrics from the infamous song, “Tik Tok,” by Kesha. Why not? A clock can be funny!

After messing with the placement of everything, the colors, and fonts, I was very happy with the end result, and I hope you are too!

p5.js Code

The Clock

GitHub

A Fantastical Dream: NaNoGenMo 2018

For the past few weeks, I have been working on one of the biggest projects yet! This time, I had to write code with Python in order to produce a novel that was at least 50,000 words. It seemed like a terrifying task at first, and I had no idea where to start. At first, I thought about searching for crime reports for famous crimes such as those of O.J. Simpson, the Menendez brothers, etc. I love ‘true-crime’ shows and documentaries. When I discovered that this would not be possible, I thought about using scripts from my favorite movies such as The Parent TrapThe Proposal, and more! I could find the scripts very easily, however I knew that it would give me a strange format as the scripts included the names of the characters and then their line. So it might look something like:

[HALLIE]:

HER LINE HERE

I wasn’t sure then about that idea. I then turned to another great idea! I thought back to my Remix poem where I combined famous quotes from three famous shows. I decided to grab chapters, quotes, and one entire book and combine them all in order to create my novel! The books ended up using were Alice in Wonderland, The Secret Garden, Cinderella, Mary Poppins, Nancy Drew, Paper Towns, The Wizard of Oz, Thirteen Reasons Why, and You’re a Badass. Some were very difficult to find online. For Mary Poppins, I sat at my computer for about an hour typing Chapter 1 by hand. Other ones, I was able to copy and paste. For example, books like Nancy DrewThe Secret Garden, and Alice in Wonderland were able to be copied and pasted quite easily. This is the time where I will tell you that I do not own any of these books. I did not write them; I am only using them as sources for my novel. All credit goes to the original authors.

Now that I had all of the text, I copied and pasted it into a Word document to see the actual word count. I’m pretty sure I ended up with something close to 54,000 words. Once I had each text file for each book, I then decided the easiest option would be to combine all of the text files into one main text file, which I named ‘Stories.txt.’ I’m not too sure why I didn’t do this to begin with.

Now it was time to write the code! This was the part I was most dreading. Luckily, by the time I had started the code, Dr. Whalen had walked us through a couple of examples in class and he had already posted three videos to walk us through everything we needed to know. I imported ‘markovify’ from Github. This was going to be perfect because I knew this would help give me some very odd, funny sentences. I followed the Github page for ‘markovify’ and soon enough after using the code that they displayed as a template, I had my novel! Now it was time to clean it up and format it better. I also needed to convert it to a PDF file. In order to do so, I followed Dr. Whalen’s instructions and imported ‘dominate’ and ‘pdfkit’ from Github. I had completed the code, however I had begun to receive numerous errors. I felt so frustrated.

In class, I asked Dr. Whalen for help and he cleared everything up! I had basically “overwhelmed” Python as it is not necessarily capable of printing out as much as I wanted it to. I originally had it printing 50,000 sentences rather than 50,000 sentences. I also had to download ‘Homebrew’ and ‘wkhtmltopdf’ to my computer in order for everything to process correctly. Once these two pieces of software were downloaded to my computer and the amount of requested sentences was brought down to 3500 instead of 50,000, I had my novel! Then, thanks to a classmate’s help, I used the function in order for me see how many words my novel actually was. I have to say that I hit ‘run’ a few times as I did import random at the beginning. After hitting ‘run’ a few times, I had a novel I liked the most. After running the length function, it turns out that the novel is 54,675 words.

Now that I had everything set up, code wise, I needed to come up with a title. I decided to name my novel A Fantastical Dream because I feel as though I included all of these books that include fairytales and fictional aspects. (I added You’re a Badass as my dad gave it to me for Christmas and there were some very positive quotes in it that I wanted to use!)

My code and full novel PDF are uploaded to my Github repository, however it is also linked below!

The repository, itself 

The text file that contains all of the book excerpts 

The code! 

A FANTASTICAL DREAM – PDF 

 

Screen-savers: Remember Those?

Growing up, I remember playing with those  that would come across the computer screens at school. There was one where you could watch those colorful bubbles float all over the screen, there was the fish bowl one, the one where you could play a game of Pac-man with your arrow keys, and more. Sometimes they were more entertaining than what was actually on the main screen. I also remember being in computer class, and our computer teacher was teaching us how to change the background image and the screensaver. From then on, a bunch of kids in my class would spend forever just exploring the different screen-savers. They were such a distraction, and sometimes I would get in trouble for not paying attention to class because I was too busy staring at the screen-savers around the room!

I present to you, my screensaver:

   

 

The Fullscreen Version

In order to make my screensaver, I played around with p5.js. At first, I started out with watching the videos on YouTube created by Dan Shiffman on his YouTube channel, The Coding Train. He was very helpful in helping me understand how to code and how to use p5.js! I not only found his videos extremely helpful, but also the Reference and Examples pages on the p5.js website. I looked through just about every example to try and help me get ideas as to what I wanted to do. I found the Pointillism example so interesting. I loved watching all of the points appear randomly on the screen. I was waiting for the image to appear, and my friends and I decided that we think it was a picture of a duck.

I began to work with different examples. I also really liked the Bouncy Bubbles example. This one reminded me most of the old computer screensaver that you could and can still use on a PC. I decided that I most wanted to follow the Pointillism example. I began to work with it in my own editor, but when I tried to run it, I would just get a screen that said “Loading…” at the top left. I was very frustrated because I understood that I needed a local server. I tried to follow instructions on how to get a local server and use it for this. I got extremely frustrated and I slowly started to realize that I might have to ditch my idea. However, after posting in Slack asking for help, Dr. Whalen shared a video with the rest of the class and me. With only adding two lines to my code, it worked like a charm! No more “Loading…” screen!

I could finally move along! I had selected the image that I wanted to load into my code. I had also found this image from Pexels, which is a website where you can find free stock photos. I was trying to decide between two images, one of a landscape and another that was just a large cloud of colorful smoke. I loved the colorful smoke one the best, so I ran with it!

Here is the original image:

I began to work with the code and change different elements such as the background color, the size of the points that will make up the image, the speed this will happen, where on the screen this will occur, and more!

I hit the “Play” button, and my dream screensaver came to life! I was so happy!

I love how this screensaver turned out, and am very excited to see it in all its glory on the Media Wall in the HCC.

Glitchtoberfest

Welcome to an illustration of my childhood…

For this project, I was to purposefully ‘glitch’ some pictures! I found it funny that I was going to purposefully cause a problem that most of us never want to see on our computers. How did I turn these images into something out of a horror movie?

I knew that I wanted to create a gallery of images that somehow related back to my childhood. At first, I started collecting images from my childhood of things that everyone remembers such as those pot-holder kits, “Flinstone” vitamins, those big parachute things from gym class, and a whole lot more. Then, I realized I would need to cite every single image, and I figured it would be easier and more fun to include images from my own library!

For the first picture of me in my mom’s arms as a newborn and also the image that is the third one down that I captioned as “I was very protective over my baby dolls,” I used Audacity! Who would’ve thought that you could use a sound-editing program to mess with an image. After watching Dr. Whalen’s very helpful videos, I realized what I needed to do. I imported the image as Raw Data, and then once it was processed, I highlighted different sections of the image’s waves that Audacity thought were sound waves. When I highlighted different sections, I went up to the Effects menu, and the one effect I used over and over again was Echo.

Once I was pleased with my  results from Audacity, I decided I wanted to work with more programs such as Hex Fiend and Text Edit. I loaded .BMP image files into Hex Fiend and Text Edit, and then continued to cut and paste chunks of the data into random places. I would grab lines and lines of the code and paste it at the bottom of the entire code. It was satisfying but I was definitely afraid of accidentally not pasting the last set of data before grabbing other lines of code. Luckily, I was able to pace myself and make sure I didn’t make this messy mistake! The pictures that resulted from Text Edit and Hex Fiend are the picture of me on my bathroom floor with the number ‘2’ written with my mom’s lipstick (why did I do this? I couldn’t tell you!), the picture of me on my back deck with my dance costume on, the picture of me standing next to my childhood best friend, and the picture of me in front of my Barbie Dream House. Some of them really turned out disturbing, such as the one of me playing with my Barbies! My eyes are in one place and my nose and mouth are floating a few centimeters away. I also really liked the green effect that it created in every picture. It reminded me of something that you would see back when you would watch or rent a VHS from Blockbuster, and you had to rewind it after watching! Remember when you had to rewind it and the screen would go all funny, or even worse when the person before you hadn’t reversed it and you had to try and look away so you didn’t spoil the movie for yourself? This “rewind” effect definitely made me happy because it is as if you are about to watch some of my old home movies, and we’re going back in time! Oh, what I wouldn’t give to be a kid again!

After playing with the method of data bending, I decided that the next method I would use was that of pixel sorting! In order to pixel sort, I followed the instructions and methods of Dr. Whalen! I watched his video numerous times while pausing it, rewinding it, replaying it, etc. I opened up Jupyter Notebook like I did when I wrote my own poetry with Python. Instead of creating a new Python workbook, I created a new terminal. In this terminal, I had a lot of difficulty at first. I wasn’t exactly sure how to use the code words such as “cd,” “pwd,” and “ls.” You also can’t click in the middle of a ‘statement’ and edit it. You have the delete everything until the point you want to edit. This was somewhat frustrating, but I did a lot of copy and pasting from other lines so I didn’t completely have to restart my process. Once I had loaded the pictures from my Desktop into the terminal, I was able to mess with them, and use commands such as writing “-a” to change the degree of the glitch and “-o” to save the new glitched image in a place that was easier to access. I also used other commands to change the glitch, itself. These changes were made by using words such as “lightness,” “intensity,” “saturation,” and more! This was fun to play with to see different versions of the glitches. At times, I put an image through this terminal and glitch process multiple times to see the glitches change so that I could choose which ones I liked best. As you can see above, some of my results were extremely disturbing. The picture of me where I am wearing a red dress for my 6th grade Holly Ball for Cotillion is quite disturbing. It’s almost as if I turned into a demon! I swear I’m not a demon! I really did create quite a bit of ‘nightmare fuel.’ I don’t think I can ever look at my pictures the same way ever again. The picture of me with a confused look on my face while on my dad’s shoulders is also somewhat disturbing. It looks like my face is melting. Don’t people say “as the memories melt away”???  My absolute favorite result is the picture where I am a little girl holding my mom’s hand while we’re on the beach. It looks like a painting to me, and it reminds me of a painting that used to be in my grandparents’ house. That glitch is definitely the best one, in my opinion. Some of the pictures had greater glitches and changes, and others stayed somewhat the same. I think that speaks to me in a way that says “Life isn’t always perfect” and “Life changes, whether you like it or not.” These glitches might not have been exactly what I had in mind, but I wouldn’t change them because they’ve changed and life isn’t perfect, and neither is art!

I love these glitches, and will definitely be sharing them with my family. Rest assured, these are not the only copies of these images, and I still have the normal pictures. I’ll leave those below so you can compare the changes. I think the glitches definitely tell a story about my life. I’ve lived a great life so far, and am hoping for a great future! Life is messy, just like these pictures. Not all of the pieces fit perfectly, just like the glitched pieces of the images. There are some things I don’t wish to remember, but sometimes these things only make you stronger. I’m grateful for my family, memories, and life in general! I wouldn’t really change a thing, just like these pictures above!

My “Code” from the Python Terminal in GitHub

Let me know what you think!

 

More Poetry? Oh Noetry!

For this project, we were to create another poem! Like the last project, we had to write a code in Python in order to generate a poem, but this time the poem had to have more structure. My poem needed to include poetry structure elements such as rhyme and meter. I was worried about having to come up with both of these elements as I am not a poetry-pro even when I try to write a regular poem on a regular piece of paper.

I tried to come up with different ideas for the poem template. I then decided to turn to Google, and I found numerous, numerous examples. Some were those of Dr. Seuss, some were those of Shel Silverstein, and others were random poems I had never read. After reading through many of the poems I was presented with, I finally decided on a template that I thought would be both fun to remix and also easy to remix.

I began to watch Dr. Whalen’s videos on YouTube. They were extremely helpful. I began to work through his example step-by-step along with him in the videos. This way, I would have a point of reference for myself, and I could get used to coding again in a more intensive way. I tried to figure out ways to stay one step ahead of him, but always fell short. Once I had watched about five ‘episodes,’ I decided it was time to work on my own template.

I typed my template into my Jupyter notebook like I did with the previous poem, and began to give each noun a value starting with {0}. As you can see below, the poem is kind of a long one. At first, I was going to try to complete the entire poem, but realized that this would be very difficult, as I would have about 17 lines to fill, while still maintaining rhyme and meter. I began to shorten the poem more and more to something more manageable. I looked back at Dr. Whalen’s videos, which did indeed help, but the poem was not going where I wanted it to. It was getting so complicated that I had to close it for the day and walk away from it. I needed a break. I could only withstand so many ERROR messages.

The original template for the poem:

Original template for my poem — Source

Finally, I woke up the next day and decided I was going to go for it head-on. I realized that I hadn’t watch Dr. Whalen’s bonus video, so I decided to watch it in hopes that it could help me. I was right! It helped me SO much! I began to write in my code, while also using some tips and tricks from Dr. Whalen. I decided that I only wanted to have about five stanzas in the poem, rather than 17. I had imported pycorpora, random, textblob, and pronouncing in order to help me and save me some time so I didn’t have to sit there and come up with hundreds of nouns that rhymed. My code began to look like this:

Once I had the template, I began to work through the code that would put everything together. I decided that from the pycorpora data, I would use the library of words classified under “personal_nouns.”  This list included words such as “teacher,” “artist,” and more, some of which I definitely wouldn’t have classified or named as personal nouns. I also decided to use the library of words in pycorpora classified under “nouns.” This list of words basically included any noun you could ever think of. Things such as “skate,” “mayor,” “squad,” and many more. I continued to write conditional statements in order for the correct personal nouns and nouns to go into the correct places. I then wrote code in order for the amount of syllables for each personal noun and noun matched up. I also wrote code in order for the computer to find how many of the words are the correct number of syllables and rhyme with one another. When matches were found, they would be placed into my template to complete the poem.

Once I had the code finally complete, and the ERROR messages were no where in sight, I began to mess with the code a little bit in order for it to change. I changed the syllable count to be 1 syllable and then  2 syllables and then 3 so that we could get more of a variety. I know I could have just done it all at once, but I wanted to make the code as simple as possible so that I could understand it and then explain it at the same time. I then began to mess with the template, which I also know I could have written code for, but again, I wanted to make it my own, and I wanted to make it easy.

The final code looked a little something like this:

Now that the code was complete, it was time to have some fun! I began to run the code multiple times so that I could see as many iterations as I could. Here are some of my favorite examples:

My Code: MorePoetryOhNoetry

“When Three Worlds Collide” — Remix Project

Three worlds collided when I was writing poetry this week.

For the Remix project, we were tasked with finding an outside source that was not already poetry, and we had to turn it into poetry. How? You may ask? Python. That’s how. I haven’t worked with Python for an actual academic project for about two years. I took Intro to Computer Science during my sophomore year of college, and I am now a senior. I worked with Python a little bit during my junior year, but not very much.

However, Dr. Whalen definitely helped me out by walking through how to use Python, and how to use programs like Jupyter Notebooks through Azure. It was a much more friendly interface than the usual blank white screen you get when you download and launch Python from your desktop.

When trying to come up with a source for this project, my mind went crazy. I wanted to use sources that were well-known and ‘relatable,’ if you will, like I did with my Twitter bot project. I decided that I was going to use quotes from three of my favorite TV shows/movies. I went online, and typed into Google: “friends TV show quotes.” When I hit enter, I was given hundreds of lists of the “Best Friends Quotes.” I clicked on one of the links, and it didn’t disappoint. The site gave me a bunch of quotes while also telling me which character said it and in which episode they said it. I decided that one of my variables would be named “quotesfriends” and that I would create a list of fifteen quotes from “Friends” for this variable.

Next, I typed into Google “the office TV show quotes.” This search also gave me hundreds of results. I chose one of the results, and again was not disappointed. There were so many to choose from. I again made another variable which I named “quotesoffice” and  I chose fifteen quotes from “The Office” for this variable. So far, I was very happy with what I had so far.

The last source I decided to use was the infamous movie (and novel), “The Fault in Our Stars.” At first, I was going to only use one and only quote from this movie/novel. This quote was going to be the one that everyone saw all over the movie posters and fan-made collages. This quote was “Okay? Okay.” I was going to have this quote used after a “Friends” quote and a quote from “The Office” had been printed. However, once I tested the code for the first time, it did not look how I wanted to. It interrupted the flow, and seemed like it was insulting the reader. I then decided to go back to Square 1. I typed into Google “the fault in our stars movie quotes.” Once again, I was given so many results, I was overwhelmed. I chose one of the results, and was again given a list. Some of the quotes in this list were not exactly what I wanted, but many were. Other quotes were full paragraphs or a few sentences, and I decided to take only what I wanted. For example, one of the quotes is said by one of the main characters: “It’s a good life, Hazel Grace.” Due to the fact that I didn’t want it to be TOO obvious that I used quotes from famous shows, I omitted the “Hazel Grace” part. I again made a third variable and named it “quotesfaultinstars.”  For this variable, I also listed fifteen quotes.

Here’s what the code for the variables and lists:

Once I had all of the variables and quotes, now it was time to bring it all together. I used the examples in class to guide me through the coding process, and ended up with a fully-functioning code! I first wrote a regular ‘print’ statement in order to print the title of my poem. I decided to title it “When Three Worlds Collide.” I figured it was pretty fitting since I brought elements from three different shows and put them all together in a poetry format.

Once I had the ‘print’ title statement, now it was time to build the ‘for’ loop in order for the poem to print out a quote from each variable in each ‘stanza,’ if you will. I also imported the ‘random’ function at the beginning so that when I ran the code, I would be given different results each time. Here’s what that ended up looking like:

I officially had code that worked! I decided also that the loop would occur five times, which means that it would print out a random quote from “Friends,” a quote from “The Office,” and a quote from “The Fault in Our Stars” and then it would repeat this cycle four more times, each one with (hopefully) different quotes. I have run into issues with repetition, but maybe that makes the poem better?

Here are some examples of poems I have been given:

So… after I ran it multiple times, these are some of my favorites. Some of the lines go together (kind of?). I believe that I still created poetry because it is something abstract. It does not follow a rhyme scheme or a specific number of syllables, but I believe that poetry can be much more. For example, in class we saw an example of a poem that was literally just a list of directions on how to perform a specific task.

With the poems that my code created, I believe they are poetry. It is something that everyone can read and view differently. Is it a conversation amongst 15 different people, who don’t hear the others speaking? Is it a game of telephone where the beginning line is the original statement, and as people go down the line in telephone, the last line is what the last person interpreted the statement as? Is it responses that you would hear if you were to sit in an office full of cubicles and everyone was on the phone, and each line is a response that someone said? Is it one of those stories where someone writes the first sentence, and then passes it to the next person, and once the second person writes a sentence, they fold the first person’s sentence over and the paper makes it around the room and a story is formed that makes absolutely no sense? Or is it simply just another poem?

My Code: Remix Project

Where I found all of these quotes:

“50+ Best ‘Friends’ Quotes .” Quote Catalog, The Thought and Expression Company, https://quotecatalog.com/quotes/tv/friends/.

“30 Best Office Quotes Of All-Time For All The Dunderheads In The Room.” Edited by Molly Given, YourTango, Tango Media Corporation, 27 June 2018, www.yourtango.com/2018314733/30-best-office-quotes-of-all-time-for-all-the-dunderheads-in-the-room.

“The Fault In Our Stars Quotes .” Rotten Tomatoes, Fandango, www.rottentomatoes.com/m/the_fault_in_our_stars/quotes/.

Citing the “Three Worlds”:

Friends. Created by David Crane, and Marta Kauffman, NBC, 22 Sept. 1994.

Daniels, Greg, and Ricky Gervais. The Office, NBC, 24 Mar. 2005.

Godfrey, Wyck. The Fault in Our Stars. Fox, 2014.

That Moment When… I was a Twitter Bot

I am not longer just Elizabeth. I’m also a Twitter bot. Yeah, you read that right!

These past two weeks, I have been creating a bot for Twitter. It’s been a process, that’s for sure!

When I was trying to come up with a topic for my bot, I had a bit of a tough time. I read through plenty of examples, and then I remembered that some of my Twitter accounts are those that Tweet out things that are relatable while also being funny. I have those moments where I want to ask “Am I the only one?” Typically, especially after reading these Tweets, I learn I am not! I wanted to add to this. I will admit that I needed Google to help me out in order to come up with about 100 different scenarios. The project started with me just having one origin statement that was “That moment when…” After reading the assignment more carefully, I learned that we needed our bots to iterate our codes 100,000 times. I definitely was worried that I was going to need to start over completely. I really didn’t want to because I loved the idea of my relatable bot.

I decided that I would still hold on to my original code in case I was able to figure out a way to revive it. In the mean time, I made a silly bot that would tweet out really random compliments. Some of the possible Tweets included “Excuse me! Your niece is empathetic and intuitive!” and “Hey you! Yeah you! Your mom’s cousin’s daughter-in-law’s dog is ambitious and beautiful.” I wasn’t as crazy about this one even though it would be pretty funny (maybe?), I couldn’t shake the idea of my That Moment When… bot. I decided to return to it after working on the compliment bot. I decided to make more relatable scenarios, different endings, and more origin statements.

The next day, we had an in-class workshop. My group looked at all of my code and was sure I had plenty. I was worried, though, because we weren’t completely sure we did the math correctly. After talking to Dr. Whalen, I realized that I could put multiple scenarios in one sentence/Tweet! A lightbulb exploded in my mind! I hadn’t even thought of that!

As I am writing this, I have just about finished my code. I decided to include 12 origin statements that each scenario could choose from. Then, I decided to add a few scenarios to the list of #alternatives1# and then decided to create a whole new list of scenarios. I added the list #alternatives2# and by the end, both lists contained around 50 scenarios in each. I thought about combining all of them into one long, exhaustive list, but then decided that I didn’t want two of the same scenarios showing up in one Tweet, even though I can see some hilarity in that situation. Lastly, I edited and added some endings that would be added to the… ENDING! You guessed it! I added some statements/words/expressions that would be added to the end of a Tweet to add to the comedy aspect I am trying to convey.

280 characters is also an interesting element of this project. I wanted to ramble on in some of the scenarios, but then I remembered that I had a limit and if I wanted to include EVERYTHING that I wanted to, I needed to be brief and a little more vague than I wanted. However, no one wants to read a Tweet that is paragraphs long. The whole point of Twitter is to to have short bursts of commentary and/or jokes.

If you want to find my Twitter bot, it’s username is @_too_relatable.

Some of the Tweets that have already been published include:

If you would like to view  my code, you can find it on Cheap Bots, Done Quick!

Here’s a little taste!

"origin": ["That moment when #alternatives1# or when #alternatives2#. #ending#", "I hate it when #alternatives1# or when #alternatives2#. #ending#", "I love it when #alternatives1# or when #alternatives2#. #ending#", "That awkward time when #alternatives1# or when #alternatives2#. #ending#"...
"alternatives1" : ["certain people call my phone and I have to wait for it to stop ringing so I can use my phone again", "you stub your toe and you see your life flash before your eyes", "you walk into the kitchen and you have no idea why you decided to come in there", "you literally say in your head 'Wed-nes-day' when trying to spell Wednesday"...
"alternatives2" : ["you realize sleeping is the only thing you have done perfectly in your life", "you raise your hand to answer a question but another person shouts the answer out", "you make eye contact with someone through that little crack in the bathroom stall", "you throw something to your friend but it hits someone else in the head", "you wake up and you can tell you slept really well because of all the lines on your face, legs, and arms from your sheets", "you're listening to a song and every word explains your life perfectly", "you see someone you don't like so you pretend to be on your phone"...
"ending" : ["Period.", "Oh, just me? Oops.", "Anybody else?"...

I am very happy with how this bot has turned out. I created it on the free website Cheap Bots, Done Quick! It was a very user-friendly tool to use, especially for someone (like me) who is not the most excelled coder. There are also no limits to how many lines you can use, words you can use, and it connects directly to your Twitter so I don’t have to stay on top of it and how many Tweets I send out. Right now, I have it Tweeting out every 6 hours as to not create spam, but still be something that stays relevant and visible on Twitter users dashboards. Who knows, maybe my Twitter bot will go viral! Please let me know what you think!

How do I know that there will be 100,000+ variations?

There are 12 origin statements. Each one either uses all three lists (alternatives 1, alternatives 2, ending) or just two of the lists (alternatives 1 OR alternatives 2, and ending). There are about 50 alternatives in each “alternatives” list. There are 7 items in the “ending” list. Each statement will be unique because of the 12 origins. Each origin will be able to pick from the same 50 #alternatives1#,  50 #alternatives2#, and 7 #ending# lists or from the same 50 #alternatives1# and 7 #ending# OR the same 50#alternatives2# and the 7 #ending#.

The math equation I calculated looks like this:

(50 * 50 * 7) + (50 * 50 * 7) + (50 * 50 * 7) + (50 * 50 * 7) + (50 * 50 * 7) + (50 * 50 * 7) + (50 * 50 * 7) + (50 * 50 * 7) + (50 * 7) + (50 * 7) + (50 * 7) + (50 * 7) = 141,400

I know it is very confusing/overwhelming when you first see it, but on paper I broke it down to be much easier. This problem illustrates the choices for each of the 12 origin statements.