Coding with Someone Else

By Jonathan Lam on 09/18/17

Tagged: brain-dump essay reflection

Previous post: Little Things
Next post: Midnight Memoirs

So… I needed help to get help. What happened was, it was late in the competition. We only had about an hour and a half left. It was about 10:30, and I was trying to solve the last challenge in the competition. There were three challenges. The first was to code an interactive demonstration of something mathematical— of your “coolest mathematical concept,” they said— and create a demonstration for their exhibit called the “Math Square,” which was essentially a huge touchscreen on the floor, with which multiple people can interact with at once. Another exhibit was a dynamic wall, which was a “wall” comprising 128 blocks, with servo motors on the top and bottom of each block to give each one the ability to move its two ends independently. The last challenge, and because this was a math museum, was to use a programming language called Mathematica, which was developed by Wolfram Alpha. The purpose of using this language was that Stephan Wolfram, the creator of Wolfram Alpha, designed this language to be very easy to use, very versatile, especially for use with mathematics, and he is also a friend of the museum’s founders.

From the last hackathon, I learned that it was a great idea, in order to get more prizes, to use all of the possible technologies. Because in the last hackathon, there were all these APIs— I remember there was Yelp, and a company called Stripe— and if you used those APIs, you got essentially free “best API implementation” prizes because almost no one used them. So I decided to use Mathematica.

So it was 10:30 in the morning, and the competition ended at 12:00, when we had to submit all of our projects, so I was rushing. We did not attend the Mathematica tutorial the day before, because we thought it would take too long. I don’t think that was our downfall, though. I couldn’t think of anything too mathematical that had not already been done. So I just tried to use the Mathematica language, and tried to explain it in a way that could be construed as highly mathematical.

So what I did was, I inputted some text, and it used Mathematica’s ability to analyze big data in order to create a word map of the most important words in the text. The algorithm I developed to determine the word frequency calculated a score for every word in the text that was proportional to its frequency inside the input text and inversely proportional to its frequency in historical literature. Then it took the top few words, and created a word cloud that indicated word score by font size. I thought this would be a cool idea. Again, it was mainly to demonstrate an application of Mathematica more than of mathematics, but it did use a little bit of science to discover useful coefficients and variables to use— at first I tried to find groups of synonymous words in the text, but this did not generate important words. I just looked across the different properties that the Wolfram Alpha Cloud had available, such as word frequency within the human language, like Google’s N-gram viewer but packed into a succinct line of code.

At first I tried to create an API, because one of the cool things about Mathematica is that it is very easy to create an API, and I did it— I think. I think I made it. But it didn’t really work. And this was around 11:00 in the morning. I couldn’t figure it out. At that time, we were kind of getting desperate, because we were still trying to get our other submissions to work. The other ones were mostly working at the time, but this one was not, and I wanted to get this prize.

Chris was telling me to talk to the person who came from Wolfram Alpha who gave the tutorial and was present to help out anyone in need. And also to give out the merchandise, of course. But I didn’t want to. I said, no, no no. I can figure this out myself. At that time, I was obviously very exhausted. It was not a good time. Instead of going to him, for the next fifteen to twenty minutes, I just tried to figure it out. I thought, it just worked, I just created this API. Maybe I changed something, maybe it broke, but I’ll just keep trying to do it. It was a very complicated statement, the algorithm; and then when I tried to access the API in JavaScript, the CORS permissions didn’t work on that end either. So I told Chris that there were too many things wrong with the project. Even if he could help me with Mathematica, JavaScript remained broken. There was no way he could solve all of my problems. So it wasn’t worth it.

So I’m the kind of guy who used dozens of whitespace entities to try to center text on a monitor. Then I learned to use the now-deprecated centering HTML tag. And a few months later, I learned the more modern CSS text-align property that is by far the cleanest and most versatile. As long as I can get it right, it’s best if I can figure it out myself.

So I didn’t explain it too much to Chris and Julian, because they were focused on polishing up the other programs while I focused on this one, and because of my selfish want to finish this— alone. But I just kind of felt bad, because I didn’t know how to collaborate with them. I didn’t know how well it would have worked out. So, after those fifteen minutes, I told Chris that he could ask the Wolfram representative. But I didn’t have the guts to go with him. I’m shy, but this felt like a defeat in the face-off with the Mathematica error, desperate.

But I ended up going with him, and the man asked what we needed help with, and I just told him that this API was giving me this error that I couldn’t find a solution to online, and he said he’d look it over. Within seconds of deconstructing it, he found out that one of the ten nested brackets was in the wrong place. I thought I had had everything right, but it must have broken when I extended the program’s capabilities, but he fixed that oh-so-simple error. And that was that with Mathematica.

I still couldn’t get the JavaScript end of the API to work. But now that the server-side Mathematica code was working, I had a little more inspiration. We didn’t have much time, so I finished the program in Mathematica, creating a graphical user interface within Mathematica consisting of an input box and a space for the output word cloud. Simple as that. In the end, that was our fifth project. We essentially won the competition. We finished first in the Dynamic Wall, were one of three finalists in the Math Square, and won the Mathematica award for using Mathematica proficiently.

One of the judges, during the judging rounds, said that we had a winning formula. But that made me feel really bad. My teammates were giving me all the credit because I didn’t go out with them to buy a snack at 3:00 in the morning and it seemed like I was doing the most work, because I was independent staring at my computer for the longest time, writing the most code, staying mysterious and non-transparent. They created the Dynamic Wall on their own— they worked together, they shared computers and code, they won their exhibit. And I worked on the Math Square, started projects that I didn’t finish. And then I went to work on the Mathematica project— which I never would have finished without Chris— while Julian finished the Dynamic Wall and Chris finished the Math Square.

On the way home, that left me thinking, because that need to collaborate— I’ve never felt it before. It’s crazy. I learned then that you need to work together with others. You can’t do it yourself. That guy said we had a winning formula. He asked if we had done other hackathons together. I said, yes, we did one before, but I thought later that it was almost the same. It was Chris and me, as well as two other kids we met. We did not really interact with them. We just talked with them. I went my own way with a website, they went their own way with an Android app, and Chris came up with the idea and sort of went his own way as well with the deeper understanding. We ended up third, which is not a terrible position, but it could have been so much better. It’s funny— at the Museum of Math’s hackathon, one of the judges didn’t even realize that I was on the team— she asked my teammates, did you pick up this member throughout the night? She hadn’t seen me when they were busy testing our projects. And they said, no, no, no, he was busy coding and doing the hard work while we were testing. And I feel bad, because that’s not the truth.

Another point that I can add is that there was another person that tried to join our team. He seemed so dismayed halfway through the competition. He didn’t have a team, he just came by himself, but he asked us if he could work with us. And he came to work with us. He seemed really determined, he had a good idea from the beginning when none of us did.

But he left halfway through the competition to go home, he said. This was in the middle of the city, and people were free to go home to rest if they wanted. But he never came back. He would have won with us. But he missed out. Because he didn’t collaborate. Couldn’t collaborate. And I think that’s the biggest problem with group projects.

Even if you do all the work by yourself, it’s not the best project. You need multiple opinions. You need more people. Even all those group projects at school. It’s different. I feel like I need to code with someone else, and I feel that idea has become more and more prevalent. I’ve been coding apps with increasing proficiency, but nothing is quite like coding with someone else.

Comments

Write a comment

No comments for this post.

This post has 0 views. Return home.

Previous post: Little Things
Next post: Midnight Memoirs

Holding onto anger is like drinking poison and expecting the other person to die.

Buddha