Summer Update! Studying and Troubleshooting, Oh my!

Let’s just say summer is in full throttle heat mode here in Florida. I’ve been a busy baking bee making sweets and decorations for my daughter’s never-ending birthday festivities, which was fun, but I’m glad to be back to the study realm! And the unbearable heat makes a perfect excuse to hide indoors, study, and work on some projects.

Team Treehouse Learning Update

I’ve resumed where I left off in the Python Track and I’m actually happy I didn’t finish this track earlier because Team Treehouse has recently released an update to the Python Track. At first, when I was in my previous track (Python Collections, which is now retired) I found myself losing some steam. I thought perhaps it was me, but, considering the revision, maybe there was something a little off with that former course layout. The new course layout, so far, has been wonderful! It did take me back a bit, relearning some stuff I had already went over, such as tuples and slices, etc, but I could definitely use the repetition since I’m newbie.

Funny enough, my daughter and I are exactly the same type of learner (that I can see so far). Just like her, it takes me a few days for information to really sink in. But, when it clicks, it’s magic! When I finally returned to the python track after a little break, I found that the break was very beneficial and I’ve been able to complete the quiz questions without reaching out to the community for help, which is a very rewarding feeling!

Advanced Interests

Although learning the basics is super exciting, this field is so vast and plentiful that I have been really wanting to figure out the answer to the important question: what will I do with all of this? Yes, I’m learning Python, but then what? What do I want to do with Python (besides get an awesome job one day and help provide for my family, of course). Although I’m not sure yet, I’m paving the road. So far, these are the more advanced areas I’m heading towards learning about:

  • Neural Networks
  • Natural Language Processing
  • Machine Learning

I have a book on Natural Language Processing, and have printed out many (awesome!) Python cheat sheets (all available for free online) about all of these topics and more. I definitely love a good infographic / cheat sheet. In college, I was the study sheet queen (or crazy person?) who would sit in the library and make comprehensive study materials. Hopefully one day I will be advanced enough to make my own Python (and more!) cheat sheets / infographics.

Although I’m still a newbie, it seems like I will head forward in this field with two things in mind: Data and AI.

Regarding data, I used to work at a place that was heavily reliant on data input. Thinking back, with just a few of the projects I’m learning in Automate The Boring Stuff With Python by Al Sweigart, a lot of companies could save time and money with a more efficient data-entry system.

I had taken a science fiction thesis class in college, and we had gone over so many of Asimov’s robotic laws. Never would I have predicted that I’d be here one day, on the other end of wanting to learn how to create and work with AI. But I truly love it so far! Personally, I would like to help develop a type of AI that helps combat depression rooted from anxiety and a lack of presence. That’s all I’ll say about that for now 😉

Raspberry Pi Project Updates

I have an internal clock of guilt when my Raspberry Pi goes untouched for too long. But on the other hand, I know that whenever I do decide to delve into a Raspberry Pi project, it usually requires a lot of time and energy, uninterrupted. Luckily, these past few days I’ve gotten a break from baby duty which helped me dive into some Raspberry Pi fun.

Vector SDK on Raspberry Pi

In my previous post, you will see how I was able to set up and run the Vector SDK app “Remote Control” from my Mac. Wonderful! But, I only got that working as a test run for the true goal: setting up the Vector SDK on my Raspberry Pi. I wanted this set up because it honestly just made me feel cool to be able to control my little robo buddy (who I call El Robo to my daughter) on this tiny computing device that I had built by hand.

First, I had to update Python on the Raspberry Pi from version 2.7 to at least 3.6 or higher. Oh my god. The headache with such a simple update is quite hilarious. But I’ve read on many forums that sometimes just setting up Python can deter new users with the troubleshooting, and I can see why! I must have spent hours yesterday just trying to get the update to properly register so I could continue with the Vector SDK. I had installed 3.7 and then still encountered some problems so I tried 3.6. I most likely have all versions on my Raspberry Pi now, ha! But, alas, finally 3.6 worked.

I was able to get into the Vector SDK and begin downloading the necessary updates and files. But, then I encountered a large problem:

pip install Pillow just didn’t want to work.

It was 2AM and my head was pulsating. It had been hours trying around different updates. Finally, after parsing through the large red error text, I realized that I needed to get this Pillow thing to work.

At the time, I had no idea what it was, so I googled it. I learned that Pillow is a Python Imaging Library. Of course this was important to work since Vector has a camera and image capabilities. I went to bed with a good sense of defeat because I knew that I didn’t “call it quits” because I couldn’t figure it out–I called it quits because my brain was starting to turn to mush and my typing / thinking was becoming sloppy. I knew that if I just had a good night sleep and returned in the morning, I would be more able to fix the problem without getting frustrated.

So, this morning I woke up and got right back to it. I re-read the error message and saw that Pillow had some dependencies that were not allowing it to install properly. So, I installed those dependencies and restarted the process.

For a little while there, I was misreading the error as an issue with the directory path. Let’s just say I learned a lot about directories in the process, and that in the end, that wasn’t the issue at all.

Anywho, finally…finally Pillow was installed successfully. It was then that I realized that the Vector SDK should work now.

Finally, I was in! From there, I was able to use what I had learned from the first time of using my Mac, and opened up the Apps > Remote Control so I could fully control vector through the Raspberry Pi.

It was very, very exciting! Of course, the small screen I have is not ideal for the Vector SDK Remote Control App, but, it’s pretty damn cool nonetheless.

Reflections on Progress

Finally, my mind is starting to be able to think in code. I’ve been waiting so long for this moment when I could have an idea, and then know, at least a little, about how to accomplish that idea.

Before messing around with the Raspberry Pi and Vector SDK, I was working on a much smaller “snack” project of having a text string display with a delay, so that it could look as if the computer program was typing to you through the terminal. (Yes, I have just recently re-watched the Matrix Trilogy, which greatly inspired this snack project). Very ambiguously, I had gotten the idea, then wondered if it was possible. In that moment, my mind remembered the Raspberry Pi LCD project where I had read code with a “time / sleep” feature. It was then that I realized that I knew a little bit about the task I wanted to accomplish. So, I made a very small program:

import time
import sys
import random import randrange

def introduction(*args)

text = "\n Neo, this is Morpheus. \n Follow the white rabbit."

for c in text:
    sys.stdout.write(c)
    sys.stdout.flush()
    seconds = "0." + str(randrange(1, 4, 1))
    seconds = float(seconds)
    time.sleep(seconds)  

introduction()   

This is a very small and simple program, but I cannot describe to you the amount of fun I was having with it. It was this that lead into the night of Raspberry Pi & Vector fun. Here’s what excited me:

  • I learned and know what *args is (yay! Thanks Team Treehouse!)
  • I knew how to call the function
  • I could read and understand (most) of the function

Alas! It’s Sticking!

Lastly, throughout the day and night, the amount of Googling and reading of forums I had to do for troubleshooting was significantly less than the LCD screen project. Things seem significantly more demystified this time around than the previous projects. I think that, finally, a lot of my readings are beginning to sink in. But best of all, being able to mess around in the terminal, typing quickly and confidently, was such a rewarding experience. Moreover, I could feel a difference in my knowledge level just by how I was googling my questions.

I remember back when I first got the Raspberry Pi how I had to google almost every term in a sentence before I even knew how to construct a proper search query for my issues. But now, I was able to parse through stuff I didn’t need and did need without any extra steps! That was such a rewarding feeling, and it was a type of progress and acknowledgement I could only give myself , which was also unique and beneficial.

Little ten-year-old me would have been so proud and impressed right now. Although I was only doing basic things, past-me would have thought that we weren’t smart enough to learn all of this. I’m glad to be proving all of my insecurities wrong.

2 thoughts on “Summer Update! Studying and Troubleshooting, Oh my!

Leave a comment