Saturday, July 29, 2017

July 2017 Updates

This month was exciting in a couple of ways.

hackernews-newsfeed made the front of page of Hacker News and the Github repository has over 300 stars. It was my first project that went viral on the internet and I find the stars to lines of code ratio absolutely hilarious, since my script for the chrome extension barely contains 60 lines of code. I guess creating something that people actually want is important, and it helps that I wrote hackernews-newsfeed because I wanted it for myself above all else.

My friends and I also started working on a project that has prompted me to learn server-side, full-stack web dev, which includes Node.js, MongoDB, and Express. This has been interesting because I'm used to writing static websites with HTML and CSS exclusively. And at HackBrown this past February, the webapp that we made in node was pure trash with APIs just stapled together, so it's nice to learn good practices from the ground up.

Work-wise, I learned a lot from having lunch with some of Dell's older employees in the the group concerned with learning about new technologies. Some of the more interesting ideas I've learned is how because the Von Neumann memory bottleneck is preventing further increases in CPU processing speed, it's likely that the conventional CPU architecture will be challenged in my lifetime. For my project, I discovered that the deep learning load wasn't being allocated evenly between the GPUs in my server box, so now I'm learning parallel programming, specifically how to use a Message Passing Interface (MPI) library for C++.

I've been very interested in cryptocurrencies recently, and find the concept of smart contracts for Ethereum absolutely fascinating. I enjoy listening to Vitalik Buterin explain concepts on YouTube and reading his Medium blogs, and I messed around with writing contracts in Solidity. I am optimistic that digital currencies will be more widespread in our lifetime, but they face setbacks such as eliminating overhead for non-technical users, and more importantly, security. This month has been particular interesting with the $32M Parity wallet Ethereum heist since the vulnerability was a pretty low-level coding mistake. Now I understand why formal verification has become such a buzzword in the crypto community and I am excited to dabble in it when MIT starts.

I also experimented with mining digital currencies for the kicks and giggles, since MIT has free electricity and Robert and I have tons of Raspberry Pis and at least four computers lying idle, one of which has an i5 Intel processor. I joined a mining pool using my ThinkPad with an i7 Intel processor since my hash rate is way too low. My computer was mining Monero on 4 CPUs and it was getting pretty hot so I stopped mining after a while, but based on my calculations, I would make at most 50 cents a day. SO NOT WORTH IT.

I am very interested in the idea of passive income, especially after making some profit off of a bot I wrote in May, but which I discontinued because it wasn't ethical and I was mostly experimenting as a proof of concept. I've been dabbling with traditional investments in index funds such as Vanguard S&P 500 (VOO), but I wonder if there are other, cooler ways. I hope that if I keep an open mind, when an opportunity comes up, I will be able to see it.

In other news, I've been pretty unhappy this summer. I don't have a car here so my movements are pretty limited. Although I've been fortunate enough to make many friends here, whom I love dearly, I feel lonely in spirit. Every night, I look forward to video chatting with Robert to share thoughts and discuss ideas with him that no one else around me cares about. I underestimated the importance of being in a stimulating environment; Texas is not one of them, and I'm looking forward to going back to MIT in the fall.

Based on my recent observations, I've realized that my absolute BIGGEST pet peeve is bullshit. I enjoy interacting with people that come clean with what they're thinking and feeling, and who ask questions if they don't understand something. I don't like it when people feel a need to play up an image. Also, I can't stand busy work because my time is much too valuable. Realizing that minimizing bullshit and irrelevance in general is very important to me has shaped my values and my dreams. I can't imagine working for a place like Dell for the rest of my life, and the contempt for selling your soul to the corporate world is really resonating with me.

I should end this post on a positive note so I'm sharing one of James Franco's paintings, which by the way, are absolutely HILARIOUS.

Saturday, July 22, 2017

A Sentimental Reflection on How I Love My Computer

I remember coming to MIT with an HP computer that was falling apart at the hinge and restarted every couple hours for Windows 10 updates. I bought my HP computer for a little over $600 in 2014. Back then, I didn't know anything about computers so I picked my computer based on its beats speakers and the light up keyboard (lol!). For a $600 computer, the HP computer was a rip off.

One of my first decisions made at MIT was to buy a new laptop and switch to Linux. There were three computers I was seriously considering: a Dell XPS 13, a MacBook Pro, and a Lenovo ThinkPad. I was hard-set on using Linux and wanted a computer that lets you make changes to it, so the MacBook Pro was out. But it was only after a friend showed me his ThinkPad T460 that I made the decision to buy it. My friend helped me order his identical computer online, and other parts like SSD and RAM so that I could upgrade my ThinkPad's hardware by myself.

I've since fallen in love with my computer. I can't imagine life without it. I love the sound of the keyboard clicking when I type, the clicking after touch that reminds me of the after touch on grand pianos. I love the layout of the keyboard and how I can mouse click with my left hand thumb, so that I can click without moving my hand away from the standard keyboard position.

Most importantly, I love my computer because it does what I want it to do. Since switching to Ubuntu (a Linux distro), I've been able to understand the abstract architecture of my computer's file systems, and learn commands that let me do things I could never imagine possible on my old Windows HP. More importantly, when things broke, I could figure out why logically, instead of following instructions mindlessly like I used to for the Windows black-box. Although I am pretty familiar with Shell and Linux file systems by now, I am looking forward to learning even more about my computer, so that I can make more changes. Something tells me that I want to learn more C.

I find it really interesting that on my laptop keyboard for keys I've used a lot, the key's original surface has been rubbed off so that a glossy surface shows. This is interesting because I've been able to analyze how I like to use my keyboard. It looks like keys "a e d r t h n i" are used the most often, as well as the backspace, enter, space bar, ctrl, and shift. It also looks like I like to press the space bar with the thumb of my right hand, and the shift and ctrl key with my left hand pinky. Seeing the glossy surfaces makes me proud because it makes me feel that I'm getting value out of my computer.

I don't think I would be able to live without my computer anymore. Anytime I have free time, I whip out my ThinkPad, whether to read or to code. It feels as if my computer has become a part of me, to the point that when I use my work laptop: a Dell computer that runs Windows 10 Enterprise and has so many restrictions that the only thing I can really do is surf the web and answer emails, that lacks the clicking after touch on its keyboard and my added short cuts that I've grown used to using, I feel as if I've been placed into a cage too small to stretch in, and stripped of my identity.

It also makes me appreciate my ThinkPad so much more, the computer that I understand and understands me, who listens to me, who helps me work and learn, the computer that supports me as I further improve my knowledge about computers.

Tuesday, July 4, 2017

June 2017 Updates

I've recently started working at Dell. My official title is "Systems Engineering Intern", but I am basically doing benchmarking on server setups with machine learning algorithms. The pace of working at a large company is much slower than it is at MIT, and the work is easier. Therefore, I've been spending a lot of my free time reading about anything remotely cs related, and as a result I've improved my knowledge of the field.

So what have I been reading? I discovered the morning paper, a blog that summarizes cs papers. I also follow hacker news when I'm sick of reading about technical things. Also I forked the coding-interview-university github repo and have been following links of whatever interests me. While doing all this, I look up concepts I don't understand and spiral from there.

One thing I've realized from work is that I'm not as interested in machine learning as I thought I was. It's such a black box and it takes so long to train. I don't feel like I have any control over what's going on. Not to mention in its current state machine learning is not artificial intelligence; it's data science. On the other hand, readings about the stalling development of Intel processors, container ecosystems, and cloud computing have inspired an interest in distributed computing. With hardware speed advancements slowing down, it's likely there will be a lot of progress in this domain in the next five years.

For the last couple of days, I've been working on a Google chrome extension that replaces my Facebook newsfeed with Hacker News. I'm sick and tired of Facebook. I've tried removing the app on my phone multiple times, but I'm so addicted to the site that blocking it is counterproductive. Therefore, I decided to replace it with an equally addicting, but less stupid site: Hacker News. I just published the extension on the chrome store, which you can download here.

Something interesting about workflow is how fast time would fly by when I am stuck while working on the extension. Instead, I realized that if I walk away and go do something else, somehow I would magically know the solution when I come back. It's like my subconscious works in the background to figure things out, and I will try this *spacing time out around thinking* technique more during the school year when I work on hard problems.

In other business, I've began working out because I'm frail and I'm starting to see cellulite on my legs. I began with running a mile a day for around a week, and gradually added more exercises. Yesterday, I spent an hour at the gym and ran one mile, did 80 squats, 200 hip thrusts, and 60 10 second leg raises, not to mention various other stretches that I was too lazy to quantity. Exercising has given me a lot more energy and my legs are getting stronger.

Also, I've been partaking in various events around Austin with a group of friends. Last week, I went to a poetry slam at a bar, which was interesting because I heard issues including rape, racism, and abortion spoken through real people. The experience really legitimized these issues for me. Among other things I've done, which includes kayaking, dinner on a lake, blues on the green, and seeing the Texas capitol, I went camping with my roommate and another friend at the Enchanted Rock State Natural Area. We spent the day hiking and gazed at stars at night. It was a very surreal experience.

I guess I will end this post with some pictures that I took. Enjoy!


Dell main headquarters in Round Rock, TX

view from our campground

view from hiking

kayaking on the Colorado River in downtown Austin

view of Colorado River from shore

dinner at the Oasis overlooking this view

view at the Oasis at sunset