Back to all outs Next out — Sitting on the Edge: My Habit & Climate Change


Almost a Sophomore


Updated on Aug 14, 2017   •   Anmol Kabra   •   experience  •  economics   •  
// long post

This 2017 summer has practically ended, and I am almost a sophomore now. I have thoroughly enjoyed basking in Ithaca’s sun, when “intermittent clouds” and “scattered thunderstorms” would ruin the bright afternoon but bring down the temperature, often leaving me confused on whether to be sad or happy about the change. The latter two phrases are exactly how Alexa would describe the weather of most days during the last 3 months, and that’s why my umbrella would always boast its presence in my small backpack.

Leaving aside the weather, this summer was electric and happening for me. I read a number of books, watched tens of videos and documentaries, met amazing people, worked on various projects, and lived my first summer in Ithaca. Now when I look back at these 3 months, I realize what is achievable without lectures and assignments, and without a constant dread of fast-paced examinations. However, I do feel that the previous years and semesters have helped me develop a strong work ethic, that constantly pushes me to learn new things and march forward. I’m almost a sophomore now, but I would not proclaim myself one before I complete this blog post.


Reading & Watching: What my Eyes and Brain Went Through

Out of curiosity, I started reading Richard Feynman’s autobiography, Surely You’re Joking, Mr. Feynman!, which is absolutely amazing. Feynman put so much of his life in a simple and hilarious way that it made me appreciate his contributions even more. After completing it in a few weeks, I mostly explored random literature, motivated by questions and curiosity. As has always been the case, my momentary interest in a certain topic highly influenced the choice of my borrowed books. Back when I was writing the post on how I compared my childhood habit with Climate Change, I was interested in the environmental shifts in climate and started reading “Climate Change: What It Means for Us, Our Children, and Our Grandchildren” to get a wider sense of the debate. The book is composed of articles about our roles in tackling Climate Change, compiled together to present a broad view of the debate to the reader. I found it interesting, though a little monotonous at times, to know how people on both sides of the debate propagate their theories and viewpoints by mutating with actual Climate Science and numbers — just to get more people on their side.

That lasted till end-June, after which I got interested in the 2008 financial recession as I browsed through YouTube. That interest lasted long, I think, as I wanted to find how the situation unfurled after so many years of ‘steady’ boom and how bad was the effect on the world economy. As far as I remember, the impact on the Indian economy was not that hard-hitting as we had a more regulated and restricted market, but I can’t say since I was in 4th grade when the recession hit!

Since I had a lot of questions about the situation in 2008 and years before, I started studying about it. I watched 2 documentaries in mid-July: Four Horsemen and Inside Job, and the latter was definitely more thrilling and moving, but it was also more extreme towards incriminating a group of people. It’s not that I don’t hold those groups responsible, but I felt that a crisis as large as that in 2008 couldn’t have been a upshot of a dozen banks’ and regulators’ actions in some countries. Four Horsemen delivered a more neutralized message, and focused on how ill-structured and ill-managed our economies are. As a bonus, it also provided solutions to the mess, explained by world-renowned economists.

I did not stop researching at that point though. I found this type of investigative economics — finding causes for the collapse — interesting, and I came across Fool’s Gold, a book by Gillian Tett, who was one of the interviewees in Four Horsemen. Only recently did I complete it, now understanding the years to the recession better, and how bankers couldn’t withhold their greed from drowning all economic ships in the Western world (the East did not suffer as drastically). It seems that the Computer Science philosophy applies in real-world perfectly — greedy heuristics do not always deliver the optimal solution.

Now I don’t want to write about every single video I watched or every magazine/book/article I read … it’s too boring. You can read about some of them here.

Yeah, it was a busy summer for my eyes, essentially. But all of this was in supplement to my research and projects, which took ~60% of my working time during the whole summer.


Research, Yayay!

I will not go into a lot of depth of what I did, as I already have a handy report that complements the code for the project. I would recommend going through the report for very detailed information and over this update for a brief introduction.

Let me give an overview about what my summer research project was about. Working with Prof. Carla Gomes and Yexiang Xue at the Computational Sustainability Lab at Cornell, I was tasked on helping speed up our models for various projects. Computer Scientists love speed, but it is often hard to implement a very fast and scalable program that can give optimal (or even good enough) results for a problem. This summer we were interested in using Graphical Processing Units (GPUs) to parallelize our computation and increase the throughput, helping us to scale our models in real life. Another major aspect of the project was to use those implementation techniques and hardware for modeling the Avicaching game in eBird.

What are eBird and Avicaching?

In a sentence, eBird is a citizen-science framework, developed by the Cornell Lab of Ornithology and our lab, aimed at collecting bird observation data. It enables citizens, like you and me, to report bird sightings through mobile apps, which scientists and researchers can use to build migration maps, formulate bird conservation policies etc.[1] However, the citizen-science aspect exposes the datasets to vast human bias, which renders many chunks useless. Avicaching tries to solve the human bias problem by incentivizing visits to under-sampled locations. It learns from the 'eBirders' visit behavior and places rewards in terms of redeemable points at locations that are historically underrepresented in eBird's datasets [2][3]. It's similar to the Pokemon Go game, when looked from the perspective of placing incentives to attract visitors. The major difference is that the Avicaching game is smarter and serves a scientific purpose — reducing bias in datasets.

Visit Densities of 'eBirders' before Avicaching game started in Tompkins and Cortland Counties, NY [2]
Image 1: Participants' visit densities before the Avicaching game started in Tompkins & Cortland Counties, NY [2]
Visit Densities of 'eBirders' after Avicaching game started in Tompkins and Cortland Counties, NY [2]
Image 2: Participants' visit densities after the Avicaching game started in Tompkins & Cortland Counties, NY [2]

Previous models of Avicaching were not practically scalable to more locations [2, 3]. We used neural networks and GPUs this time to accelerate learning. A sub-problem also used linear constraints (linear programming) for keeping the distribution of rewards under budget and meaningful. We obtained noticeable speedups when using GPUs instead of CPUs for those neural networks, but we had traded off with optimality as gradient descent does not guarantee global search (it’s greedy). Nevertheless, our simulations delivered optimistic results and the models proved more scalable than the previous ones.

While we were designing models for Avicaching, I also studied the GPU architecture and tried to understand the benefits and drawbacks of using GPUs over CPUs. I started off by studying material from Cornell courses — Digital Circuits and Computer Organization — to get a mediocre understanding of what a processor’s architecture looks like. I knew studying the full material would have taken a very long time, and so we started working on the Avicaching part alongside. I was only able to understand the GPU architecture by the end of this summer, which I then presented to other lab members.

We're Gonna Need a GPU
Image 3: That's what you say when your neural network is deep (The Scinder)

It was a busy summer, of which documenting our work in the report and repeated testing were the most time-consuming sub-tasks. In fact, out of the 10 weeks I was actively doing research, about 3-4 weeks were spent in writing the report and documenting the code. When perusing the report and code, I would always find a small bug that could alter the results and logic flow, and I had to do the tests all over again — and delete the previous ones. The report turned out well, and I’m proud of it. On the other hand, I believe I dedicated more than 4 weeks to testing, though testing closely overlapped with model development. Since this was my first time in an active CS research job, I often overlooked key points before running the tests, only to find the errors when I would start writing about them. This debugging-testing-writing-repeat process reminded me of school days, when I would constantly find errors and logical fallacies in experimental observations only when I took to document them in a report. I should have learnt it better then, I guess.

Now that I think about the whole project, I believe that both parts — Avicaching modeling and understanding GPUs — were productive. I found this experience extremely prolific and it was :100: good decision to stay in Ithaca and do research. Research was often challenging because it was open-ended — my decisions to investigate in depth or breadth starkly influenced the outcome of the project. I found the people very motivated to pursue their projects even further, as I first-handedly witnessed when they were eager to share their work in the last meeting. We had set a time-limit for 5 minutes for people to give an overview of what they did this summer, but we were all so excited that every body violated the alloted time! I will be working with the group next semester too, but I wouldn’t be able to work as diligently as I could this summer due to classes. This summer was an amazing experience!

Web Development is Hard and Annoying

Did you notice something different (if you had been on my website before)? It’s a brand new website! I had been working on this version over the last 1.5 months, building most units zero up, and ditching the clunky and slow WordPress to develop using Jekyll, Bootstrap, and most importantly, GitHub Pages. Requests to the website are now much faster as it is hosted on GitHub and development is much easier with Git and Jekyll. The WordPress always delivered ‘Database Errors’ instead of my webpages, though that was because of me not upgrading the host-server. More importantly, I am fully in-charge of my website now, and I can customize it however I like. Liquid templating and YAML front-matter support allow me to fuse some logic with web development, and I feel confident about the product already. However, these are nice words about web development, and conflict with this section’s title. So I’ll justify the title.

I still haven’t got around to implement core features on this website, because, you know, web development is hard and annoying. Although Jekyll and Bootstrap do make life easier, getting the placement of a div tag just right is a colossal task in itself. And that’s before I talk about my impression of JavaScript and Ajax. I’m not very experienced in front-end development (as a matter of fact, I’m not very experienced in any field — it takes more time and practice), but I’m trying to upstart as many elements as possible before the semester starts next week. Currently, I’m having trouble with implementing these features on the website:

  • search - I had tried using lunr.js with JSON datafiles, but it doesn’t seem to work always. I spent more than 10 hours straight debugging the search engine, but to no avail.
  • responsiveness - As I said, web development is hard and annoying, and optimizing the website to nicely display on all types of devices is a stressful task. I’m just laying it off for later and will only touch this topic when I have lots of free time in hand (that’s rare).
  • populating all ins - I have automated most of the page generation using Liquid, and thankfully, I just need to git push a markdown file to add an in or an out. And I can do this on any device with an internet connection, but I prefer my laptop. However, just copying all the data from the old website didn’t work so nicely, so I have to manually create all those .md files and populate the website.
  • comments - I have had a lot of trouble migrating comments. I exported the WordPress comments to Disqus to manage comments on this website, but I have difficulty matching the post IDs to retain old comments, which I do not want to lose.
  • minor tweaks - Keep finding lots of them here and there, and I can’t stop myself debating over 1px of margin and padding in CSS. I have succeded in suppressing this emotion for now though.

Do you know a possible solution to these problems? Contact me now. I will really appreciate some help.

If you don’t like something on the website, please, please submit a feedback through this form! It’s very important for me, and it will only help improve your experience. Don’t you want a more functional web experience?

Living in Ithaca: Some Anecdotes

I finally learned how to cook, though limited skills for substinence at max. My mother had been pressing me to do some cooking when I was in India last winter, but I was too lazy. Now when I realized that it would be unaffordable to eat out daily, I made it a point to cook most of my meals. My mother even volunteered to provide cooking lessons live streamed from home, but I got the hang of it in some weeks.

Ithaca Weather
Image 4: This week is better than most, at least

Last week I went completely on home-made food and groceries that I bought from Wegmans, and it cost me less than $30. I wasn’t being frugal but, since my cooking skills are limited, I could only buy vegetables and products I knew how to use. Ended up feeding myself with Dal (yellow lentils/pulses), a Tofu dish, and Rice for the whole summer. My family often asked if I found it boring — of course I did — but I was too indifferent on learning to cook more dishes. When I had some time last week, I learned to make canned black beans, which turned out to be a strike! Even so, I didn’t buy any more afterwards, and am trying to complete all the food I’d bought. Even though I didn’t have a lot of options to cook, I never went hungry (if you’re worried).

Deer near West Campus during Summer
Image 5: Spotted Deer spotted near West Campus, Cornell University

Contrary to my sad situation when it came to cooking, living in Ithaca was great. Fewer people, less traffic, more greenery and colorful scenes, but the same-old, unpredictable Ithaca weather. Initially, I fully relied on Google and Alexa for weather forecasts. But even their predictions were off by a large margin at times. Only last Saturday it rained heavily for a few minutes after I attended a training session. Neither did Alexa tell me about it in the morning, nor did Google predicted rain while I was getting drenched from head to toe.

Abandon hope, all ye who enter here

Befitting reply to freshmen when they ask about Ithaca's weather, perennially

I also went to a few state parks around here a couple of times, but it was quiet otherwise. I like quiet. It helps me focus on important tasks rather than fretting over urgent tasks. And I always had books and documentaries and projects to spend leisure time with. I don’t really remember details about each single adventure I completed, which is why I will stop here.

Thanks for reading :smile:!


References

  1. eBird, Available Online
  2. Xue, Y. et al., “Avicaching: A Two Stage Game for Bias Reduction in Citizen Science”, Available Online
  3. Xue, Y. et al., “Behavior Identification in Two-stage Games for Incentivizing Citizen Science Exploration”, Available Online