Panther: A Distributed Web Crawler in Python

Overview Panther is a distributed, (mostly) compliant, web-crawler written in Python. In English: Panther is a service that lets you slowly download/index the web piece-by-piece. In a nutshell, the way it does this is using an algorithm called BFS. If you think of the web as an actual web like below (with urls as points and links as edges), then what Panther does is start at a point and slowly expand from that center by visiting its closest neighbors. ...

March 11, 2021 · 7 min · Me

Blanche: A Spotlight Search for Chrome

One thing that’s really been on my mind for the last semester is just how differently people are starting to view their computers/devices now in comparison to just 10+ years ago. It seems like for the early half of the 21st century, we’ve always forced software and hardware to adapt to the user. Today, I think the tide is starting to change; I think that people are now increasingly expected to adapt to the technology available, not the other way around. As we’ll see, I think this change in expectations could be used to make pretty large changes in the way we interact with the web. ...

January 13, 2021 · 8 min · Me

Temporal Landmarks: What they are and why they matter

Introduction I love Thursdays. At Penn especially, Thursdays for most of us are when we’re done with our classes for the week, and we can just max and relax. When it’s Thursday, it feels like the next school week is a forever away and is a problem for the “future me” to solve. In the same vain, there’s so many things right now that we constantly delegate to a new and better “future us” to solve, at way bigger time scales. If I asked you to imagine your yourself 10 years from now, what would you think? Would you be smarter, more confident, better rested? Would life be more stable/fun (even more than it already is)? Chances are, if you’re like me and a bunch of other people, in ten years, so much would change that you probably see yourself as more settled, and all of those unsolved problems (career, love life, etc.) would have just magically been solved. Also, for a smaller number of people, the sheer amount of stuff you would have done in ten years probably makes you think that you’d be living such a different life that you might little in common with who you are now. ...

November 27, 2020 · 5 min · Me

Workflow 1.0: Terminal

I think a workflow is really important. Of course everyone agrees, but I want to go further and argue that having the right workflow at the right time could actually determine how well things works out for you in the long term and even how passionate you are about this something in the future. Many people’s first impressions of programming is incredibly intimidating since the amount of things thrown at them is really high and the number of familiar things (software used, relatable experiences) is really low. If you’ve taken a CS class or tried to learn programming, you probably remember the experience yourself. But most importantly, when you’re first starting out, the scariest thing is trying to step outside the box of what you know to work. The average person is not only new to the language or skill they want to learn, but also new to the software and the toolchain surrounding the language/skill they’re learning. The worst experience isn’t being wrong about something, it’s not knowing when or even how you’re wrong. Those experiences aren’t tied to CS as much as they’re tied to the toolchain since great software nowadays highlights when you’re wrong or shows you how to fix runtime errors in a meaningful way. But most importantly, great software is understandable and predictable so you know what to do when something fails, and exactly how to fix it. ...

November 2, 2020 · 6 min · Me

Why I'm Starting This Blog

Over the last three years, I’ve learned so much since coming to Penn. The people, the presence, the courseload, the food, and everything in between has taught me a lot about what makes me happy and the kind of person I want to be. This year especially has been a turning point for me in terms of how many things I’ve developed newfound appreciations for. But with everything I’m learning, it seems like I’m forgetting things faster than I want to. It also feels like this knowledge really isn’t really going anywhere. While it’s fun knowing how to think through distributed systems concerns, for example, part of me feels super daunted by the thought of ever actually doing anything with the things I’ve learned. Most of all, sometimes I’m super scared that my learning might be completely emotional, and that I really haven’t learned anything yet. ...

November 1, 2020 · 4 min · Me