Wednesday, October 30, 2013

FutureStack and DevelopHer

{Future}Stack13

FutureStack was a two-day tech conference put on by New Relic last Thursday and Friday. New Relic is a company that does performance monitoring, which means that if you made an app like Facebook or Pinterest, you would ask New Relic to monitor how quickly every part of your program is running so that if something is consistently taking two minutes to load you know you have a problem somewhere in that part of your program. New Relic is a sizable company and they have so far hired two Hackbright alums. Because New Relic loves Hackbright so much, they gave us all free tickets (normally $600/person).

Side note: We were all given business cards for the conference. That was exciting.


Thursday we registered and got our name badges, which were basically little Arduinos that sync to your phone and keep track of your information. This meant you could hold your name badge up to another person's name badge, your name badge would blink while info was being transmitted, and your phone app would now have that person's contact info. It also gave points for the number of "connections" you made and they had a running contest with prizes for the most points throughout the conference. At one point I was 14 on the leader board. That was cool. You could also hold your badge up against a board outside each room to rate the quality of the talk you had just seen. We were also given swag bags, which included a t-shirt, decals, a cord organizer, and a few other fun things, all in a sweet little tote bag with the FutureStack logo on it.


Thursday morning's keynote was by the CTO of New Relic, followed by an amazing talk by this woman named Hilary Mason, who works with big data. Then we spent the rest of the day going to several smaller talks. I really wanted to go to the Cake concert afterwards, but I knew I would be too exhausted for the hackathon on Friday if I stayed late on Thursday.

Friday's tech talks were also really fun and I learned a lot. Plus we were given awesome bento boxes with our lunch, and free wrap-up iPhone chargers. Also on Friday, I got my project semi-approved! Yay! More on that later. Liz high-fived me for promoting Hackbright a lot while I was at the conference. It was pretty fun to meet people and talk about what Hackbright does.

My Favorite Talks

Julia Grace from Tindie gave a fantastic talk about hardware and how arduino and raspberry pi  have lowered the barrier to entry for people to play with hardware and software. During her presentation, she showed a picture of my team at the hardware hackathon as well as a video of the LeapMotion-controlled robot that one of my classmates worked on at the hardware hackathon. She also gave an awesome shout out to Hackbright.

Another talk I really enjoyed was by Etan Lightstone of New Relic. He talked about data visualization and design. It was a very informative and (obviously) visual talk.

There was an awesome talk called Surviving the Offline Apocalypse by a guy named Joel Worall, who is the CTO of Cure International. He talked about how to keep places like hospitals online that are in remote areas in developing countries. The work they do at Cure is really amazing.

I also particularly loved a talk called Nerd Life Balance by Nick Floyd. He talked about bringing your enthusiasm for tech home and teaching your kids, your spouse, your friends, and anyone who wants to learn. He has five children and they all play with hardware and enjoy hacking their xbox games so that they never lose. He also talked about being more productive and satisfied by allowing your work and personal life to be more congruent. After the talk I went up to talk to the speaker to tell him how much I enjoyed his presentation. When he found out I was from Hackbright he said, "Oh! Awesome! I have something for you." It turns out he had a stash of Rasperry Pis that he was giving out to Hackbrighters, and I got his last one! I was extremely excited and thanked him profusely. More about my awesome raspberry pi and what I'm doing with it later.

DevelopHer

I had to leave the conference a bit early on Friday to meet up with my mom so that we could make our way down to LinkedIn in Mountain View for their all-female hackathon, DevelopHer. I was super tired, so a lot of it is a huge blur, but basically we made an awesome game:

When the game starts, this is what you see:


After you pick up your poo and collect your bones to put in your dog house, you get stars:


The game logic was fairly basic: you can't pick up your poo unless you have a bag, and you can't go into your dog house until you have cleaned up your poo and collected your bones. It was super fun to build and we got to meet some cool people too. It was fun munching on LinkedIn's cafeteria food. They have a nice variety, but we mostly took advantage of their soft serve with hot fudge, chips, protein bars, peanut m&m's, fruit-infused water, soda, salads, and free breakfast/lunch/dinner/cupcakes. They also gave us weird shirts that we probably won't wear because they aren't t-shirts and I don't know how to handle it. We went home to sleep and returned the next morning, but most people spent the night at LinkedIn.




It was super fun presenting our project and people commented on how cool it was that we were doing this as a mother-daughter activity. I was proud :)

Raspberry Pi

I am really excited about my raspberry pi, and John and I are trying to make some cool things happen. I don't want to give away too much yet because I'm not done putting stuff together. But stayed tuned for more on this topic. All you need to know so far is that we installed linux on it and I can actually program on it and save things on it, which is pretty cool.

I Have No Time and There's So Much Going On

I'm sorry I was lame and didn't post for a long time. It's getting really difficult to keep my blog up to date. Many ups and downs, some more crying at Hackbright, a ton of high-fiving and cracking up, crazy weekend adventures, John being an amazing husband and supporting me through everything, and meetings with my mentors in which I flail about and they somehow turn that into meaningful units of understanding. I will try to post soon about our movie ratings app featuring grumpy cat, changes to my project design, and a giant-whiteboard heist that involved some major, real-life geometry and a small gash oozing blood.


Friday, October 18, 2013

Too Many Things!!

I am quickly getting behind in my blog because I have more and more to talk about in less and less time. I'm trying my best. Here we go.

I Built a Game

I did build a game, but it is not very easily shared, so you get to enjoy this picture and imagine playing it. The graphics were made by a dude who offers free graphics to game developers so that people don't have to spend tons of money on graphics in order to build a game.


Basically you are the little girl and you have to open the chest, which requires a key. But first you have to build a boat to cross the river, and then you have to move the dirt blocks and bribe the dragon to get to the key. Anyway, it isn't the most fun game in the world, but it is cute and I can see myself making a much more exciting game using these same graphics (more on that later).

I learned SQL, HTML, CSS, Flask, Jinja, Javascript, DOM

Holy crap. In a few days we learned a bunch of new languages and concepts. I don't have a firm grasp on any of them, and not many people in my class do. But Liz said that there will be plenty of time to relearn all this stuff when we are working on our projects. Then we will learn everything really well because we will have one-on-one help from instructors/mentors and we will have a real-life need for that type of coding. In case you are not familiar with the string of nonsense above, these things can kind of be translated thusly:

SQL: Building databases and getting info from databases
HTML: Putting words and pictures on the interwebs
CSS: Making the words and pictures pretty
Flask: A framework for Python (I don't really know what that means though)
Jinja: A weird language to be used inside Flask (or a red-headed ninja)
Javascript: Making things online be interactive (like buttons or forms on a website)
DOM: A tree. Or something. All I know is that I have to "get elements by id" and stuff. I don't really get it yet.

I kind of dig the SQL and the Javascript is ok, but I am not sold on everything else. I'm sure I will have to learn all this stuff when I start on my project, so I am not too worried about it yet. I do think it is becoming less likely that I will look for a front-end job after this.

Feeling Dumb, Tired, and Hungry, and hating BART

This week and last week have been physically and mentally draining. There were a few times when I thought I was the only one who totally didn't understand something, but each time it turned out that most people didn't understand it either. It feels so good when you finally get something working, and you just want to shout for joy and high five everyone. On the other hand, it really sucks hearing someone else rejoicing over a coding victory when you have been banging your head against the wall about a stupid problem that you can't figure out. 

What I'm trying to say is that I don't understand everything but I learned a lot and I am tired and I want to lay face-down on my bed for many hours.

Also, BART strike. 

Mentors

I have three awesome mentors who I currently have no spare time to meet with. Tim works for Zillow, Zac works for HandUp, and Sara works for SurveyMonkey. They are all super nice and awesome, and I am looking forward to getting to know them better. Sara is a Hackbright alum, so she knows exactly what I'm going through. I talked to her at length about SurveyMonkey and it sounds like an amazing place to work. I am skyping with each of my mentors next week hopefully, but hopefully once we start our projects I will actually have the flexibility to meet with them at Hackbright, at their places of work, and elsewhere. More on this trio of awesome later.

FutureStack

Going to a conference next Thursday/Friday called FutureStack that is being put on by New Relic. Because New Relic is super nice and they love Hackbright, they are letting us all go for free (normally $600/person). Also, Cake is playing at the kickoff party. Holy crap. I love Cake.

My Project!!

So in a couple weeks we are going to stop pair programming and start our individual projects. We will work on these projects for the remainder of the program, with some interview skills practice/negotiating skills practice. 

The project I want to work on is based on my belief that anyone can learn to program if they 1) are empowered, and 2) have resources. There are plenty of people out there who have neither, and I think this is one of the biggest reasons that young girls don't get interested in programming. I want to build a game that particularly appeals to young girls, probably aimed at 11-year-olds, that provides a well-structured soft introduction to programming concepts. Basically I want to trick innocent little girls into giving programming a try so that they can discover how fun it is! [evil laugh]

I haven't decided too much about the details yet, but I have been thinking about making something similar to Ruby Warrior in concept - with simple graphics and levels - but I would want it to be much girlier and have a LOT more instructional support. My goal is that any little girl could play this game without any help from an adult and they would not walk away from it thinking they are not smart enough to learn to program.

Re: girlier - Obviously the main character would be a girl. I'm thinking at the beginning you get to choose a pet - a dog, cat, horse, baby t-rex, or cute little monster. And it would be very story-based.

Re: more instructional support - Each level would show an example of some code, then have the player do it themselves with help and then without help. I want it to take things very slowly and offer lots of help and examples that are relevant and interesting to a little girl.

I will trick all the little girls and build an army of awesome programHers! Muhuhuahaha!




Saturday, October 12, 2013

Hacking Hardware and Talking Tech

The Speakers

Last Saturday and Sunday I went to Silicon Chef, a hardware hackathon for women. They provided each team with an Arduino kit, free t-shirts, food, lots of mentors, and tons of space at the startup Stripe, which has a very cool facility. Before giving us our Arduino kits and sending us off to hack away, they had several speakers.

The current mayor of San Francisco, Ed Lee, is the first to create staff positions called Director of Innovation and Deputy Director of Education. Well, the Deputy Director of Education, who is a woman, presented a Mayor's Award to Hackbright for bringing more women into tech. Apparently it is not an award that is given out frequently, so that was very cool.

The other speakers were all awesome, but they kind of run together for me because I was so tired. But some of the topics they covered were about why manufacturing is so convenient in China (spoiler alert: it's not just cheap labor), how to create a product and then take it to market, and a slew of awesome products designed to get teen/pre-teen girls into tech.

Chaos and Unidentified Arduino Parts

After the speakers they distributed the Arduino kits and set us loose. Our team started going crazy with excitement and panic. We hadn't really discussed a strategy at all. Some people on our team really wanted to build something awesome. I just wanted to learn about hardware. Unfortunately, there wasn't really a way for us to accomplish these two opposing goals using only one Arduino. We were all trying to find out what the weird sensors and knobs and buttons and diodes were and how they worked, and we were disoriented/frantic as we tried to google the parts and find out what you could do with them. This did not work out very well and I spent a lot of the first day feeling kind of stressed and bummed out that I wasn't learning much. 

The next day I asked Liz if I could use one of the extra Arduinos to just go through the basic instructions in the book and really try to learn how hardware works. Luckily Liz is super awesome and all about learning, so she let me do it. I went around and told people to come hang out with me if they wanted to learn about the basics of hardware together. I worked partly on my own but had visitors come and go. Some people had been working on much more complicated stuff than I understood, but I was still able to teach them a lot about the basics that they didn't understand. I earned 20 points for Ravenclaw for teaching people about hardware!

The world's cutest seven-year-old girl came over and pretended to be a cat while I was hooking up a circuit from the instructions booklet. I talked to her for a while, which was awesome. Then her mom came over and we talked for a while. I guess when she was in college her advisors told her not to take computer science because it is really hard and uses a lot of math. She was a little devastated but luckily she realized that her advisors were racist, sexist pigs and she took programming classes anyway. She's a software engineer and she takes her awesome daughter to hackathons all the time. She tries not to pressure her daughter at all. She just asks for ideas on what to do and her daughter is super creative. A few weeks ago this woman and her friend and this little girl made a game based on the girl's design at a hackathon and they won $40,000 for it! I don't remember what she said the game did but I think it had something to do with animals. She gave me her contact info and she is going to send me some info on getting involved with organizations for young kids/girls that are all about getting them interested in tech.

Deep Learning: Can Computers Learn?

Every student at Hackbright is required to deliver a lightning talk - a five to ten minute talk about anything related to tech - sometime throughout the program. I signed up for the first time slot so that I could get it over with.

My tech talk was on Tuesday and my topic was Deep Learning, which is where you try to set up a program that acts more like a human brain than like a robot. So rather than writing a program that tells a computer how to recognize a human face, you build a virtual "neural network" and then give it a ton of faces and see if it learns how to recognize a human face on its own, much like a baby would. Google recently made a giant neural network and set it loose on youtube for three days to see what it would learn. They didn't tell it what to learn - they just gave it a way of strengthening and weakening connections between "neurons" as information comes in that confirms or contradicts previous information. After those three days, this neural net could recognize cat faces, among other things. This is what that program now considers to be the ideal cat face:


For a better explanation and more information on what Deep Learning really is, check out this article from Wired. 

The other two tech talks this week were about Captchas and about Project Loon, respectively. They were both super interesting and it has made me excited for everyone's tech talks in the next few weeks. We're basically learning about current events in the tech world while also getting practice giving short presentations. 


Next post will be about: Classes, Games, SQL, HTML, and Other Strange Concepts. Stay tuned!


Wednesday, October 9, 2013

Last Wednesday's Roller Coaster Dip

I Interrupt Every Few Seconds

I don't really know what is wrong with me, but apparently there are only two ways I can respond to someone trying to explain something to me: interrupt constantly and ask a bajillion questions, or zone out. Basically, if I'm not stopping you all the time to ask questions, I'm not really engaged. I don't have an in-between, which I guess I should try to work on. Some people don't mind me constantly interrupting, but one of our instructors just doesn't operate that way. I've heard several people say that her explanations are the best for their learning style. Some of her explanations have been really helpful for me too. But apparently it really bothers her when people interrupt her in the middle of a sentence, which I can understand. The problem is that she was not having a great day due to some back problems and I was having trouble understanding something with my coding partner (aka, I was interrupting a lot), and she really snapped. It seemed like she was at the end of her ropes and was holding back from punching me.

Everyone Hates Me and It's Humiliating

I really look up to this instructor and I value her opinion, so when she lost it at me, I took it very hard. I assumed it meant that all this time she had been hiding how much she couldn't stand me and now I had driven her to the point that she couldn't hide it anymore. So I started crying because I'm a kindergartener. Then I went into the bathroom and quietly sobbed for a long time. I was trying to pull myself together, but my thoughts were spiraling out of control. If she hates me, maybe all the other instructors also hate me. And maybe everyone in the class hates me too and just wishes I would shut up because I'm constantly being insubordinate. I thought, what is wrong with me? Why can't I just shut up and listen? I felt humiliated that all this time I had been constantly interrupting with questions and everyone was just cringing every time, wishing I would stop. And I could never tell anyone about this, not any of my classmates, not an instructor, not my family, because it was so humiliating. And I'd never be able to engage again, which meant that I wouldn't learn anything ever again. I know, I spiral quickly and dramatically.

Fun fact about me: once I start crying, it's really hard for me to pull myself together. I basically spent the rest of the day being a fragile soap bubble that could pop at any moment, and I was so distracted that I couldn't concentrate on anything. So when we did our afternoon lecture, I started crying again because I kept thinking about how much everyone probably hated me and how stupid and lame I had been for thinking that they actually liked me. As I sat there crying silently, Katie (classmate, savior) asked me what was wrong and I told her everything in a whisper. I told her I was totally not engaged anymore. I felt like I wouldn't be able to engage again because I'd be worried about people thinking that my interruptions are obnoxious. Katie was my rock. She talked me down from the ledge and became my programming partner. She kept me from losing it for the rest of the day. I don't know how she did it, but clearly she is amazing.

Maybe Not Everyone Hates Me

As I was walking to the BART from class, I forced myself to admit what had happened to the two classmates I was walking with. One of them had been there when the instructor got mad and she agreed that it had felt uncomfortably mean, but she also pointed out that the instructor was in a lot of pain and that she was probably just very cranky. The other classmate I was walking with said that she is really, really happy when I interrupt and ask questions because she always has the same question as I do. I started to think that some people might not hate me. This gave me a little more courage to speak to more people about it, and the more I talked about it, the better I felt. I still cried at home that night because I was a bit fragile and I needed to release my tension.

A New Hope

(If you don't know that the above subtitle is a reference to Star Wars, you will definitely think I am being extra dramatic). I woke up on Thursday feeling much better and one of my classmates looked like she was about to have a crying-on-the-bathroom-floor kind of day, so I swooped in and told her I could help. She wanted to be my partner again, even though we aren't supposed to repeat partners, and I agreed because I really wanted her to not feel like I had felt the day before. At one point we got a bit stuck on the exercises and I went to get an instructor for help. After the instructor helped us understand the exercise better, I told her what had happened the day before and she said that it was perfectly normal for every student to latch onto one particular instructor that they really meshed with and to not really mesh well with the other instructors. She also told us an awesome story about when she was in college taking programming classes and would cry in class at least once a week, and there was a super nice guy who would help her and she always felt so lame for crying in front of him. This made me feel a lot less lame for crying like a baby on the bathroom floor because I thought no one liked me.

By Friday morning I was laughing about the Wednesday version of myself. I'm so happy to be at Hackbright. It is so much safer here than at other hacker bootcamps. They only let people in who are smart and caring, which results in a wonderfully supportive group of people. I have been trying to reach out to my classmates as much as possible, especially when they seem like they are feeling stupid. I tell them that I think we are all really smart and that I dare them to try to prove me wrong. I'm sure my confidence will plummet again at a few points during this program and I will need these amazing women to help me out of my funk again.

Next Up....

Phew. That was a lot. Stay tuned for more about the Hackathon, my Tech Talk, creating games, and much, much more!

Monday, October 7, 2013

Quick post about Hackathon

Some highlights from the projects presented at the hackathon

Meow Meow:
A tiny robot cat, designed by a SEVEN-YEAR-OLD GIRL and programmed by her mom with the girl's help. This little girl and her mom are awesome and I hope to meet up with them again in the future. They do a lot of events/workshops for getting girls into tech. And they do Black Girls Code, which is even more awesome.

Oprah Magic Eight Ball:
Shake the magic eight ball and it prints an Oprah quote to a tiny LCD screen.

Tap to Tweet:
An Arduino that you tap morse code into and it tweets your message:
twitter.com/tap_to_tweet

Interactive Solar:
Uses solar input to open and close your curtains based on the time of day. Also optional push button to manually open and close.

Leap Robot:
Uses Leap Motion - use your hand motions to tell the robocar to roll forward, back, stop, left, right

ALSO!!

Lily Pads are super cool, and the woman who invented them was at the hackathon
Arduinos that can be sewn with conductive thread. Tons of little kids are getting into it and making little monsters and stuff:
http://lilypadarduino.org/?p=1483
http://arduino.cc/en/Main/arduinoBoardLilyPad


More info later. The hackathon was really fun/exhausting/time-consuming and I didn't really have a weekend. I will try to post a bigger update as soon as possible.

Thursday, October 3, 2013

Arduino and Markov Chains (It sounds so fancy!)

What is an Arduino, Anyway?

I had heard of Arduino before and I knew it had something to do with setting up circuits and programing them to do things. But I had never used one or had much of a desire to try it out. Monday night we had an intro workshop at Hackbright on Arduino/circuits/electricity. Our team consists of five people, all Ravenclaws from Hackbright, and we got to take out an Arduino kit to play around with. In the kit is an Arduino board, which looks like this:

If you think it looks confusing and weird, join the club. But basically the little black box on the lower left corner is where you plug in a cable that connects to your computer so that you can tell the Arduino what to do.

The black lines across the top and bottom are little sockets where you can insert wires. So if you hook it up correctly, you can write a simple program that makes a tiny LED light blink on and off, at which point you can jump up and down and shout, "I made a robot!!!!!"


The kit also includes wires, LEDs, a motor, various sensors (temperature sensor, etc), and a breadboard, which is kind of like an extension of the Arduino in case you want to hook up more stuff. We have no idea what our project will be for the hackathon, but we might just play around with the Arduino for two days, see what we can make it do, and call that our project. It's not a super competitive hackathon. I predict I will learn a lot and have fun. And then our team gets to keep the Arduino kit forever! I envision a Hunger Games-style slaughterfest after which one of us walks away with an Arduino covered in the blood of our team members.

A Markov Success

The project we worked on on Tuesday to Wednesday was based on Markov chains, which sounds much fancier than it is, but is also a lot more fun than it sounds. Basically if we take a section of the most obnoxious Dr. Seuss book, we can see some patterns:

  "Would you could you in a house?
   Would you could you with a mouse?
   Would you could you in a box?
   Would you could you with a fox?"

In this text, the word "Would" is always followed by the word "you," but the word "you" might be followed by the word "could" or the word "in" or the word "with." We wrote a program that took a bunch of text and generated random sentences based on which words follow which words from that text. Naturally, my partner and I chose Pride & Prejudice as our text. So we had the program go through the entirety of Pride & Prejudice, track every word, and put together a fake Pride&Prej-sentence.

Then we tweeted out some of these fake sentences using Twitter's API, which is a fancy way of saying that Twitter used some crazy magic to make my program send out tweets. So every time I run my program, it sends out a tweet from @prideNprejubot with a newly-made fake Pride & Prejudice sentence! Basically I am a sorceress.

Anyway, if our Pride N Prejubot wasn't enough for you, feel free to check out some of our classmates' Markov tweets, such as @50mobydicks (combines Fifty Shades of Grey with Moby Dick) and @wisdom_of_biebs (combines Justin Bieber lyrics with Star Wars quotes).

Wamp Wamp Waaaaaamp  :-(       .        .      .    .   .  .  . . . ....Ta-Da!!

Yesterday around noon my confidence absolutely plummeted to the point where I was sobbing uncontrollably on the bathroom floor and thinking that this whole programming thing was all over for me and I could never tell anyone about any of it because no one could ever love me as the pathetic broken loser crybaby moron that I am. Twenty-four hours later, my confidence is really high again and I can actually talk/laugh about yesterday with my classmates, with my instructors, and on this blog (aka family/friends/the NSA). 

What the hell happened yesterday to start a cascading waterfall of tears, despair, and hopelessness? And how did I manage to get back to full confidence so quickly? Find out next time on Ava Goes To Hackbright!*

*because I'm super sleepy right now and it's way past my bedtime. Also, cliffhangers are fun. But seriously, I'm totally ok now so please don't be worried about me.