Category Archives: Business and Industry

A Failed Attempt – Alina

This past week marks the end of the data collection period of my project. After I figured out how to scrape data generally on websites with simple structures in the last blog post, I had been experimenting with pulling data down from the Expedia website which was way more complex. However, as I tried to do this, I encountered some difficulties. At first, I decided to start experimenting with data that should be easily pulled to see if the code would indeed even work for this site. Therefore, I picked the date of the flight shown on the website. It had the tag class=”title-date-rtv“. I put this value into the code.

Screen Shot 2018-11-03 at 5.39.05 PM

I don’t recall what exactly the first few runs returned, but I remember that I didn’t get the date that was printed on the page. When I gave it another try, I got a different error message – HTTP Error 429: Too Many Requests.

Screen Shot 2018-10-31 at 5.14.23 PM

Even though the name was pretty self-explanatory, I wanted to know more about what it meant and if there was a way to fix my code to avoid this error, so I looked it up online. What I learned was that this error usually occurs because the websites set a restriction on the times of requests there could be from each IP address during a certain time period. This is a way for the websites to protect themselves from malicious attacks. In some cases, it is also possible that you haven’t really made a lot of requests in a short amount of time but that is just what the server returned as the error. No conclusion can be made in that case based on that message. On StackOverflow the advice given by people was that you should not try to get around it because spamming the websites would be considered an unethical even illegal behavior. The option given was that if your code was running in loops, then you should “sleep your process” which means to use a function to put your process on pause for a certain length of time after each time it runs to avoid overwhelming the server. However, if you were like me and your code wasn’t on a loop, there really isn’t much you could do if you wanted to get a result at that moment apart from maybe using a VPN with a different IP address. My only option was to wait for a period of time until it was okay for me to do another request. The problem was I didn’t know what amount of time I was supposed to wait for.  When I tried again 10 minutes later, it returned the same error message. I consulted T. Tom, my mentor, to see if he had any advice. He said I should try again tomorrow, so that was what I did. This time, I finally got the date printed as I expected.

Screen Shot 2018-10-31 at 10.38.06 PM

Now I know that my method of collection was viable, I decided to try and see if I could finally pull data of the prices. I found the tag of the price section which was class=”full-bold no-wrap”

Screen Shot 2018-11-04 at 4.38.11 PM

I put this in my code.

Screen Shot 2018-11-04 at 4.40.33 PM

Again, I got the error message of Too Many Requests. When I tried again, the result returned was “None” which meant that the program didn’t find any element with the given tag which I didn’t understand. So I tried to run it again, and this time, again it gave me the same too-many-request error. The main issue I had was that there was no way for me to test out my code efficiently and modify it because of the amount of time it required me to wait.

Therefore, I decided that for the moment, since I am at the end of the data collection period, I am going to shift my focus to the analysis of the data. Although I am going to continue to explore the possibility of pulling data off of the Expedia site with my code on the side.

This is the data that I have to work with now. It is by no means a big data set, but it should be enough for my purposes.

Screen Shot 2018-11-04 at 5.15.38 PM

Screen Shot 2018-11-04 at 5.14.47 PM

I have also begun investigating the ways in which I can analyze the data. I have been reading Visualize This by Nathan Yau. Also, I have been following a tutorial/course on codecademy on the topic of data analysis. More on that in my next blog!

 

Sources:

“429 Too Many Requests.” Http Statuses, httpstatuses.com/429. Accessed 4 Nov. 2018.

“How to avoid HTTP error 429 (Too Many Requests) python.” Stack Overflow, 1 Apr. 2014, stackoverflow.com/questions/22786068/how-to-avoid-http-error-429-too-many-requests-python. Accessed 4 Nov. 2018.

“Introduction to Data Analysis.” Codecademy, http://www.codecademy.com/programs/d4ca904f105f85fdb149aaa77d3c011b/items/c36432f958dcd000126c1bc58240a619. Accessed 4 Nov. 2018.

Yau, Nathan. Visualize This: The FlowingData Guide to Design, Visualization, and Statistics. Indianapolis, Wiley, 2011.

Data Collection Continued – Alina

Updated Table

If you remembered from my last blog, my focus in this project has recently been on figuring out a way to scrape data off of the travel websites using code instead of doing it manually since it is indeed a tedious job. Of course, while working on the code, I have also kept with the primitive collecting method since data collection is the objective of this month’s work in my project. So here’s an updated version of my data table: Continue reading

Why We Changed Our Name – Sabrina

I changed the name of my nonprofit from Project G.I.R.L to The Girl Narrative this previous summer 2018, and I don’t think I could have made a better decision for my business.


For the first 4 months of being Project G.I.R.L, things were going as any new business was going; we were beginning to build our foundation, our audience, and our marketing plan for the future. Later on, there were several issues that presented themselves that caused me to seriously reconsider our name.

 

1. Project G.I.R.L is great…but it’s generic

 

a. When I really got to thinking about it, When you hear the name Project G.I.R.L, you have no idea what we do, who we are, or what our goals are. It is beautiful and fantastic but is overall too generic. When you are building the foundation of your business there are two incredibly important things you need to have: consistency and clarity.  

 

2. There were other organizations that had similar names

 

a. I remember when I was interviewing Gauri Kapoor, CEO and founder of the after-school program The Girl and I (read our article about her daughter in the program here!), she got confused because she tried to look us up, but found another nonprofit organization. This was also not a one-time-incident. We were constantly confused with other organizations that sounded similar or had similar elements to Project G.I.R.L

 

3. Our message wasn’t clear

 

a. This is the biggest reason that we changed our name. Project G.I.R.L tells you nothing about what we want to achieve or why we are important. You would be able to guess that we had something to do with young female empowerment, but other than that, you would have no idea what we do.

LOGOThe Girl Narrative is unique, our own, and clearly states what we do. We TELL the Girl Narrative. We tell the stories of strong young women to inspire girls to be limitless. Now, with our new name, our partners like March Against Revenge Porn, Nonprofit Jenni, Live Girl (and more!), our audience, and our future customers (HINT! HINT!) will be able to find us, know us, and connect with us better. It doesn’t make it effortless, running a business is never effortless, but it does make things a little easier.

Signature

Sabrina Schoenborn 

CEO and Founder of

The Girl Narrative


Citations:

Kapoor, Gauri. “Home.” The Girl And I, http://www.thegirlandi.com/.

Schoenborn, Sabrina “Mahika Chopra.” The Girl Narrative,

https://thegirlnarrative.com/mahika-chopra/

Juliett, Leah. “#MARCH AGAINST REVENGE PORN.” March Against Revenge Porn,

marchagainstrevengeporn.org/.

Hargrove, Jenni. “Home.” Nonprofit Jenni, http://www.nonprofitjenni.com/.

West, Sheri. “Home.” LiveGirl, golivegirl.org/.

Schoenborn, Sabrina “Home.” The Girl Narrative, http://www.thegirlnarrative.com/.

 

 

 

Constantly Being Told “No.” – Sabrina

“No.”

“No.”

“No.”

“No.”

“No.”

“No.”

“No.”


NoRunning a business has truly been a test of patience. Being told no all day every day is exhausting, there is no way around that. It feels as if there is only a descent. As someone who was expecting some ups and downs, it was a harsh reality to realize that, for most of my process, it has been a straight descent. Continue reading

Training an Object Detector with TensorFlow (Part II)-Kevin

For last week’s blog post, I wrote a short tutorial for training a custom object detection model using TensorFlow Object Detection API. Due to the limited space and time constraints, my tutorial was not quite finished. Therefore, in this week’s blog, I will continue my tutorial and include additional steps such as the usage of a tool to test your model’s accuracy.

Continue reading

Training an Object Detector with TensorFlow – Kevin

Have you ever heard of Tesla’s Model S sedan? It is one of the few cars capable of fully autonomous driving. Although U.S. laws currently do not permit this, the Model S can pick you up at your house and drop you off at school, all without you even touching the steering wheel. To create a self-driving vehicle, Tesla engineers had to employ many machine learning techniques, including an object detector that recognizes and classifies objects around the car. For example, the on-board camera is able to recognize pedestrians and instructs the car to stop. Another example is that the object detector recognizes other vehicles on the road, keeping the Tesla from colliding into them.

With the use of the TensorFlow Object Detection API, creating such a model (though probably not as accurate as the one Tesla developed) can now be done with consumer-grade equipment such as a personal computer. As promised in last week’s blog, I will discuss how to create a customized object detector with the TensorFlow API.

Continue reading

Installing TensorFlow on Windows (Part II) – Kevin

In last week’s blog, I wrote about the installation process of TensorFlow on a PC. In this blog, I will continue my tutorial on TensorFlow installation.

Step 3: Installing TensorFlow
At the time of writing, there are two supported ways of installing TensorFlow:

  • Native pip
  • Anaconda

While native pip installs TensorFlow directly onto your computer, Anaconda allows you to create a virtual environment and install TensorFlow into that environment. The benefit of this is to help you avoid unwanted interference with other packages. However, if you do chose to use Anaconda, you will not be able to access the TensorFlow package globally (from any directory on your computer). The following chart compares the two different installation methods:

Continue reading

Installing TensorFlow on Windows 10

It has been quite a while since I last wrote about machine learning. During the first week after spring break, I finally got a chance to take a closer look at TensorFlow, a software library designed for machine learning applications by Google. It was originally used by the Google Brain team and was later made open-source to the public. In this week’s blog post, I will discuss the installation of TensorFlow on PCs.

Continue reading