06 October 2014

Hackbright Day 5 and Hardly Strictly Bluegrass


Friday was the first Friday of Hackbright and the last day of our first week. (You still following?) Fridays are generally more relaxed, so we started the day out with a skit from the performers of Hackbright Theatre on the differences between tuples and lists. Very entertaining! We also talked about sets. Tuples are immutable and good as data structures. So basically, they're like the array-like things in IDL. That aha moment stuck with me, but I decided to keep it to myself because I'm guessing that there is no one else in that room who ever used IDL because OMG NO ONE USES IDL WHY DIDN'T I LEARN A USEFUL LANGUAGE IN GRAD SCHOOL???????

We're going to revisit this later.
We then did a skill exercise to see how quickly we could get through something. It was actually pretty easy because it did not go over my nemesis (that would be list slicing). What I've found is that if I've seen something in Fortran/Supermongo/bash/IDL/somethingelseuseless, I'm mostly okay with the concept. I just need a refresher. My Fortran-honed instincts tell me to build everything from scratch, though, so it's kind of a huge roadblock for me. In addition, my HOLYCRAPPANIC-o-meter goes off if I don't immediately understand something (AHH. LIST SLICING). I'm going to thank grad school for that.
In the afternoon, we had a brief lecture from one of the founders of Hackbright. He's usually an intstructor, I think, but this was the first lecture that he led. He told us about how google figures out where you are from your laptop. Google street view vans used to drive around and record your wifi names. They would then remember where that was located and then could tell if you were connected to it. However, moving across the country, but keeping the same wireless network name doesn't update automatically... until! they started using phones that hooked to wifi but also had GPS enabled to determine your exact location. So every time your phone asks if you want to enable wifi for better precision and you connect, Google is thanking you.
The rest of the afternoon was spent working on the skill exercise and then completing all the other items we didn't finish from earlier in the week. I should probably look at the "extra" stuff that we could have done if we had time (but no, LIST SLIIIIIIICCCCCCCCIIIIIIINNNNNNGGG). One of the instructors was kind enough to give another lecture on list slicing, which was great and helped me better understand it.
Finally, around the built-in break time, all these bottles of champagne were brought out and a butter knife was brandished. Hackbright was congratulating us on finishing up the first week of classes and the lead instructor was about to attempt to saber the champange bottle with a butter knife. It turns out that you can't really saber a champagne bottle like that, but you CAN do it with a spatula. All of the rest of the bottles were opened in the usual way. Surprisingly, no one wanted to drink out of the spatula-opened bottle.

It turns out that glass shards do not provide the mouthfeel that most people seek in a good champange.



It was a good week. It was frustrating at times, but mostly I felt like I learned what I needed to. I really need to do some soul searching and become better at pair programming. I probably also need to unclench a lot. It's hard to do, though, because this feels like the highest stakes schooling I've ever done and it's in the shortest amount of time.

And here's where all the Hackbright stuff ends. So keep on reading if you're super interested in random things that I did this weekend. ;)

The summer of 2005 was pretty rough. It was the summer between my tumultuous freshman year of college and the (unbeknownst to me at the time) equally tumultous sophomore year of college. I applied to a bunch of internships for the summer, but was rejected, mostly because those internships typically went to students who were a year or two further in school. My undergrad advisor got me into the summer program at MSU, and so I spent the summer splitting my time between East Lansing where I worked M-F and Harper Woods, so I could go home and fight with my awesome boyfriend. I remember so very, very little of that summer. Partly because I blocked it out and partly because it was 9 years ago. (HOLY CRAP I AM THE OLDEST WHO EVER OLDED IN EVER!)

I did form some friendships, though, and "maintained" those friends through facebook. Here's to never cleaning out my friends list! I actually met up with one of the people from the program last summer when I went to Boston to work on my thesis. Interestingly enough, she knows the person who let us crash at her place in the first night we were in the Bay Area. BUT! I was introduced to that person by one of my best friends in Austin who went to undergrad while the pad-crashing-allower was in grad school. (Wow, talking about people without names is difficult.) What I'm trying to say is that astronomy is an incredibly small community and everyone knows everyone else. You don't play 6 degrees of Kevin Bacon in astronomy because everyone is Kevin Bacon. But i'm getting off track.
There was another person who I maintained a facebook friendship with from that long-ago MSU internship. She moved to San Francisco with her fiance a few months ago and is doing a different coding bootcamp. We met up at The Hardly Strictly Bluegrass Fest in Golden Gate Park on Saturday, and it was great! I got to meet her fiance, she got to meet Colby and we reminisced about the very few things we could remember from the summer of '05 and talked about San Francisco, tech, and life in general. It was awesome getting to see her again and I hope that we can hang out more frequently than every 9 years in the future.
Right, so let's talk about Hardly Strictly. It's a nominally a bluegrass festival, but the first act we saw was Deltron 3030 and the 3030 Orchestra, who were very much not bluegrass. I think it's a rap superband, but I could be totally mistaken. A typical fan was frat boy with dreads with a joint in one hand and a bag of Franzia in the other. We left after a couple songs because the area was in the sun and Colby melts in the sun because he's pretty much as pale as you can get before you get rickets.
We then headed towards the Rooster Stage, where we stayed for most of the rest of the night. It was great, and mostly alt-country. The whole reason why I wanted to go was to see Robert Earl Keen. Every time I'd hear a country-sounding song on KLRU that i liked, it was him. My homesickness for Austin was briefly alleviated to the tune of Gringo Honeymoon, Merry Christmas from the Family, and (of course) the Road Goes on Forever. The MC called him the "Poet Laureate of the Rooster Stage" and everyone was super into it. The crowd at the Rooster Stage was generally a lot older and a lot less trashed. I posted a bunch of pictures on Instagram and twitter from the festival. All in all, it was a great day and I'm glad that we decided to brave the crowds and the terrible public transit situation.

03 October 2014

Hackbright Day 4 and the Eventbrite Girl Geek Dinner

Today was the fourth day of class. We talked about list slicing in the lecture in the morning. I still have a lot of questions about it, but they're still mostly answerable by playing around with toy scripts or even in the python interpreter. The exercise today was basically writing list functions from scratch using only slice operators. I find list slicing to be incredibly frustrating. I think part of it is that it's different than what I'm used to in Fortran and also that it's not something that i immediately caught on to. My partner and I never finished the exercise, but I will definitely be working on it tomorrow.  Today was also picture day, which is never a good day for me. They mollified all of us by giving us Hackbright branded graph paper notepads. I guess it made it better. Or something.

In the afternoon, we talked about lists, iteration, and memory allocation. Apparently, if you don't pay attention to your variable assignment, you can have memory leaks by having things that are no longer connected to anything that is being kept track of in the code, but are connected to other unconnected areas in allocated memory. This makes python think that this shouldn't be cleaned up during garbage collection. This is not something I'm super concerned about right now, but it's another good thing to tuck in the back of my mind for when I'm working on my project and it runs crazy slow. I was totally having flashbacks to the pointers lectures in CSE 231, but I gritted my teeth and made sure I understood it this time around.

After classes, a subset of us headed to Eventbrite for the Girl Geek Dinner. It was pretty awesome. The food was great, there was a lot of alcohol (that I didn't touch because my tolerance is about nil at this point), and I actually tried to network a bit. Eventbrite seems like a great place to be and the company culture is awesome and caring of both their employees and customers and forward thinking. And they also hire Hackbright grads and they're looking for data scientists. I should probably start looking into data science Coursera programs right about now. We also got some fancy GGD swag, in the form of a really nice, sturdy tote bag, a pen, and a GGD branded moleskine. Two notebooks in one day? IS THIS REAL LIFE?

And I realize that this post is a bit thin and I have no pictures of code, but it's sort of late and I spent a lot of time playing around with chremacs and some horrible python-for-chromebooks to attempt to do the homework. I really just need to get my shit together and install Chrubuntu.

02 October 2014

Hackbright Day 3: Where I get distracted before talking about HB


From What Should We Call Grad School

Someone from UT posted that on facebook. I thought it was apt for how I'm feeling right now about Hackbright. I need to do the homework. I want to continue on in the exercises that we do in class to improve them and to play around with the extra stuff. I really should finish the pre-work. All of this in addition to the personal things that need to be taken care of, including but not limited to: finding a new place for three people to live by November 1, finding a school for when Ramona finally arrives,
figuring out how to safely install ChrUbuntu on my Chromebook, finding Colby a job. As much as grad school was terrible and stressful, it never felt like I was putting anything on the line. This entire move has been stressful and risky, but it's been exhilarating all the same.

Today was day three of Hackbright. I thought that I was going to be early, but when I sat down on the BART, I realized how crazy short my dress was so I stopped into Walgreens to buy a pair of tights. Unlike in Austin, some of the Walgreens out here are experiences in an of themselves. You might even call them a piazza. Totally reminded me of this  scene from You've Got Mail:



ANYWAY. Back to Hackbright. We had lecture in the morning and we talked a bit about functions from the previous night's homework. My solution was different than what was discussed in class, but I think it still worked in the right way. We then went on to pair program. I think I was clearer in my descriptions of what I was doing while I was "driving" (aka typing), so that's good. I think I also need to just sit on my hands while I "navigate" (aka watching my partner type) because I'm like a 2.5 year old who can't sit still unless Dinosaur Train is on.

There were two exercises today and they involved functions and calls to functions. We essentially wrote a variation on a Polish Notation calculator. First: I love infix notation. Second: I now know how dictionaries (so basically the same thing as hashes in Perl and wow, I totally never understood them until now. Sorry, Chris!) work and how you can call a function from a dictionary entry.


My partner and I moved through the exercises fairly quickly, so we also did a "week one" project where we were given a set of files that had random names and we needed to create directories that were named a, b, ..., z and place the files in the directory that corresponded to their first letter. Partly because I miss doing terrible, wonderful things with the command line and partly because I just wanted to see how I would approach the problem on my own, I shell scripted the assignment first. We then used python to for reals solve it. I asked one of the instructors if this task was something that was supposed to happen in python in real world applications or if we could do something like this using shell scripting since it seems like that was more efficient. He indicated that it was fine either way. The one question I still have is how can you access a shell script that you wrote yourself from within a python script? I've tried system.call("/home/user/iheartawk.scr") to no avail.

And now I should probably go to bed or do the homework. The homework is actually to rewrite a code so that it's more understandable. At first I didn't understand why the code was hard to read, but then I realized that years of reading my advisor's decades old F77 code has made me actually pretty okay at reading other people's code. It's like I have a skill or something.

01 October 2014

Hackbright: Day 2. An exploration in my pair programming partner's patience.


We spent the morning talking about the blockly maze exercise we did yesterday, along with algorithms in general. It turns out that the "left hand rule" of maze solving basically says, if you can turn left, turn left, otherwise, if you can go forward, go forward, and worst case scenario, go right. This has a real-world application of being a way to find items in file systems that are structured like "trees". It makes me think I should mess around and try to write my own locate script to see if I can make it work.

After that, we paired off to today's exercise, in which we created a guessing game. Pair programming is something that I am very much not good at. I speak quickly, I get excited by ideas (and have the subsequent unintelligible verbal diarrhea), and I'm not used to thinking out loud in such a way that it is decipherable to anyone but myself. To anyone reading this with whom I have pair programmed or will pair program with in the future: my deepest and sincerest apologies.

The guessing game was pretty straightforward, where it was a game where the user guessed a random number between 1 and 100 and then would be told if their guess was right, too high or too low. Then, we added features to alert the user when their guess was out of range or if they entered a string. Determining whether or not the input was out of range was easy. Trying to figure out if it was actually a string was much more difficult.

We prompted the user for input using the command:
guess = raw_input("Guess a number between 1-100")
Due to the way that python works, the raw_input function converts anything that is entered into a string, so if the user inputs a number, for instance, "67", we need to convert that number from a string to an integer. This is easy enough to do:
guess = int(guess)
BUT, if the user entered something that wasn't a number, e.g., "poop", then doing guess = int(guess) is going to puke on you. The way that we solved for this was to write a function that compared the input to a string of all the arabic numerals to see if the input contained only numbers (and thus was able to successfully run guess = int(guess)). The function was actually pretty nifty:

And I just realized that I emailed my pair programming partner and myself the wrong file. I am the awesome.

Finally, we added the functionality to play another round and to also keep track of the high score. I want to play around with it a bit more to see if I can make it look better and perhaps function faster. And now I should probably go to sleep or pack since we're moving again during the day.


EDITED TO ADD:

I totally forgot that we talked about git. git is way better than cvs and apparently I was doing horrible, terrible, no good things in cvs before, so it's good that I'm now committed (HA, GIT it??????) to git. Tabula rasa, amirite? (I understand that that's not at all what is meant by that.)

30 September 2014

San Francisco Eats

Having been in San Francisco for less than a week, I am clearly an expert in the food scene. We tried to cook at the place that we're staying, but it's hard because all of my cooking stuff is packed away in the car or in Michigan. We even decided to leave our spices in the car, so when I decided I was going to make tacos tonight, I realized that it wasn't going to happen. We've been eating out a bunch, probably more than we should, but here's a list of some of the places that we've eaten at that I've enjoyed.

We went to La Oaxaqueña in the Mission District tonight for dinner. Colby got a "spicy pork" taco (he's super awesome at details), I got a sundried tomato + goat cheese pupusa and we split a tlayuda. I had never heard of a tlayuda until we went there. It's essentially a Mexican pizza-like dish, with a crispy tortilla as a base, covered in refried beans, cheese, salsa, lettuce, and (in our case) chipotle chicken. Colby said that the taco was the best thing he's had since we've been to SF. The tlayuda was similarly delicious and I am completely angry that I didn't know those existed until now. We almost didn't go there because they sometimes cook with grasshoppers and I was terrified of cross contamination, but I'm glad that we went. Only later did we find out that it's a "hipster hotspot" and "super sketchy". 
This also satisfied my avocado craving
Truly Mediterranean is in the Mission District. It serves schwarma and falafel on lavash. Colby got the lamb and I got the chicken kabob and it was wonderful. While we were waiting, one of the cooks gave us a sample of falafel. Those were incredibly delicious and definitely worth a trip back.
This is the only picture I have of that
Pakwan is also in the Mission and it serves Pakistani and Indian food. it was a little strange in that you have to buy the rice separately, but we ended up just splitting a huge piece of naan instead. I got the saag with chicken and Colby got chicken tikka masala because that's the only thing he ever gets. They were both really good and Colby would have probably enjoyed his meal more with rice.
Nothing look as delicious as blurry spinach, AMIRITE?!

Sugar Cafe and Coffee Bar is in Union Square, right next to Hackbright. My hackathon team (I swear I'm going to post about it soon!) met there to discuss ideas. I had a super delicious latte and a tuna salad that was also very good (and super low carb, might I add). I am 90000% sure that I'll be making a return trip because I rely on coffee the way python uses white space. Or something.

latte + chromebook = instagram picture
prettiest tuna salad ever
Hopefully I'll get out the DSLR and take real pictures of actual food I'm eating again. Or better yet, I'll get back to writing about the food I'm making at home when I finally have a home in which to make food again.



29 September 2014

Hackbright Day 1

Today was the first day of Hackbright and like everyone else who is blogging their way though it, I felt the need to recap.

My first accomplishment of the day was making it to the office on time and without getting lost. GO ME!! We had breakfast provided, which was nice, and then settled in with a getting-to-know-you type of game, where I didn't really get to know anyone. I just know that most people either don't like Jason Mraz or are willing to admit their fondness for his music, but not too many people consider it their guilty pleasure. We then heard from some of the instructors about what the program was like, two alumni about their experiences, and then learned about pair programming via a skit and then a short talk.

3 Things I Didn't Know About Pair Programming:

  1. You're supposed to switch after every 2-3 LINES of code, or at least every 5 minutes
  2. You're supposed to talk your way through it
  3. You're not supposed to just put one person at the keyboard with the other person "navigating"

Thing I Didn't Know About Pair Programming, But Largely Suspected:

  1. I'm not particularly good at it.

It's okay, though. I have plenty of time to get better and I think that having other people who think differently than me is helpful. I hope. And I hope that I didn't make the first day useless for my pair programming partner.

We then went to lunch, came back for our first pair programming exercise in blockly, heard a lecture on the command line, and then had our second pair programming exercise, this time about the command line. This was a tutorial by Zed Shaw, as part of an appendix of Learn Python the Hard Way. This is the first time I had ever used "pushd" and "popd". Those are not useful commands. AT ALL. It's okay, though, because I asked one of the TAs about it and she also said that she's never used them.

My biggest complaint of the day is that they're not using emacs, but rather a text editor called sublime. In fact, emacs wasn't even installed on the computer in the lab. Maybe I'm just a crusty old astronomer (I did do extensive parts of my thesis using supermongo, after all), but gahh.

And now it's time to talk about impostor syndrome. My interview process was different than most of the other students. They kept telling everyone, "don't worry, we chose you because you're awesome and we know you", but I'm terrified that they don't actually know me and that my alternative path to Hackbright was based on networking and not actually because I'm going to do well. Everyone seems really motivated and capable and I'm back in my first year of grad school wondering how the hell I even got in. People talk about coursera classes they've taken and different things they've done and I've spent the past month procrastinating on finishing up the pre-work and moving across the country. Everyone said I needed a mental break after my thesis so I didn't implode, and they were totally, completely right. But I wonder if I took that break at the expense of being prepared. I guess we'll see.

Also, I participated in a Hackathon last weekend, but I think I'll wait to recap that for a later post.

25 September 2014

San Francisco Things: Clarion Alley

The first apartment that we're staying in backs up onto Clarion Alley in the Mission District. It's actually incredibly spacious for San Francisco standards, and I kind of wish we could stay here for the duration. Clarion Alley is known for the colorful murals that cover its buildings. The Clarion Alley Mural Project has been around for over 20 years and the murals are updated and changed frequently. We walked down the alley and took some pictures while we were out and about today.

The stairs in the second picture actually lead up to the apartment we're staying in right now. I guess it's the only apartment that's painted as part of the CAMP.









There were a lot of memorial works up.

Imma go out on a limb here and say that this artist is not a fan of gentrification.

That's actually on the sidewalk. On the other side of the alley there were giant piles of human shit. Lovely.

That might be my favorite one, it's incredibly intricate.

Another interesting piece

And now I should probably finish up my pre-work since tonight and tomorrow are my last days where I can really do anything about it.