Thursday July 12th

GSoC Day 60

Today was a day of JavaScript and Type-checking.

  • I specifically learned some things about how a type-checker works. I also learned about building type-checked languages with Turnstile.
  • Stephen Chang gave us a talk on PL, type-checking and an introduction to macrotypes.
  • I got my type-checker to implement Ints, Floats, Bools and Strings. I still need to implement Lambdas properly. Then I need to implement that in Turnstile.

The highlight of the day

  • Was that Matthias said he’d chat with those who were interested in pursuing a PhD in PL. He described the average Bachelor’s as kind of a shallow experience. I went in a little later, so my experience was quite different, and I worked three jobs throughout, rowed on a NCAA division 1 team, attended an Ivy through an exchange programme in between, spent a summer in a tiny country in West Africa through a Disney scholarship (as one of two students chosen from our school) and pretty much moved to a different country to attend school, but I do notice that a lot of people come out not very well-rounded or worldly. I did a lot in school, and I remember my parents walking on to campus and even the gardeners knew me and told my parents good things about me! :) I enjoyed my time there but ultimately, ended up in a different path a few years later (thus this blog). Matthias mentioned that a student he knew actually found out he liked wood-carving more than dependent types for Assembly. Sometimes, that’s how things work out.

  • He mentioned that the goal is to find a Master for whom you can be an apprentice. Someone who is willing to help you work on your deficiencies, essentially. He also outlined the options and reasons for doing a PhD. He described a PhD as sort of like “falling in love”; the honeymoon stage, and how that is the sort of feeling that carries you through when things get difficult while study. It reminded me of college, where an advisor told me that I should do something that I love, because the first time I experienced a lot of snow and was miserable and homesick, the love and grit for wanting to be there would carry me emotionally.

Why do a PhD?

  • Why would you want to learn from someone? You like their ideas. You get along with that person. Be sure that’s who you’d want to work with for say, five years. Make sure they give you room to try several things, and that you aren’t limited by one specific type of restricted research based on funding.
  • He described the papers you publish as milestones of tackling problems, every three years or so. Then there’s a “hump paper”, after which you can write your dissertation. He also mentioned that two to three years before you are ready to go before the committee, you should know where you want to end up and your advisor should help you achieve those goals or set you on that path. Very helpful advice.
  • Also check out the lab and talk to the students there. Find out about their experience day to day with their advisor. These people are the people who become like family. Matthias said he still writes papers with his peers from 20 years ago.
  • Balance is also important. Ideally, I’d like to be somewhere where I can sail. :)

I got back in time

  • To pair-programme with Chris on getting the window to be resizable so it isn’t hiding the controls on my tiny screen. A lot of it was fiddling with css and even writing a bit of jquery. The difference between that and reasoning about Haskell is very different. Plus, I didn’t have to rebuild or anything because of the automatic reload with CSS. So it was a welcome break.

I guess it’s back to Haskell!

  • I’m going to spend the time reasoning about some Haskell in CIS194, which I’ve been going through on my own. I also looked at some parser code today written in Haskell. I think I can make a small parser!
Written on July 12, 2018