UMass -> Summer -> CMU

After years of work at the University of Massachusetts Amherst, I graduated this past spring. I got to experience and learn at lot at UMass and will be looking back on it with rose-colored glasses. I had the opportunity to continue my studies and do a masters degree at UMass in computer science. Due to a program offered by the university, and my desire to join industry quickly, I opted for their accelerated Master’s program. This required that I take graduate courses that were to be stripped from my undergraduate transcript and put onto my graduate transcript. Interestingly, most of the courses I ended up taking circa fall 2021 - spring 2023 were heavily skewed towards machine learning systems and data science but what I’ve ended up enjoying in industry is working with embedded systems and hardware.

I took a number of courses that were heavily focused in theory (Algorithms for data science, Indep. Study, Quantum Information Systems, Cryptography) and some more practice oriented courses (Machine Learning, Operating Systems, Computer Networks, a number of mathematics courses). In the end my piece of advice to students at University of Massachusetts Amherst, particularly those following a similar path to my own, would be to not focus on perfection in coursework. Spend time around your classmates - some of the most creative, intelligent, and passionate individuals I have ever met I first started talking to when they sat next to me in class. If you are feeling particularly inspired, the university is perhaps one of the only places where you can take the helm (so to speak) and dive into something of your own. This path may seem risk and challenging, but if you do it for long enough and well enough (and you’re lucky), you can become a researcher->Ph.D.->Post-Doc->Professor and get funding to work on something truly of your own making, how incredible!

A applied to a number of universities through the graduate application process, primarily focused on Master’s programs in computer science and was accepted to University of California Los Angeles, Carnegie Mellon University, and my undergraduate institution University of Massachusetts Amherst. While this decision was difficult, especially since leaving UMass meant a more expensive and unfamiliar program, I did decide to attend CMU for a Master’s in Software Engineering (focus in Embedded Systems). I have many people to thank for this process along the way which I will not list here.

The end of my undergraduate experience was particularly significant as it meant that my long time girlfriend and I would no longer have to be in a long-distance relationship. She, the incredible person she is, also decided that she would join me to Pittsburgh, something that I am grateful for. To kick off the summer, Lillian and I finally went on a road-trip that I had been planning for a few months across the United States. This is something that deserves its own post (or many!) to detail more about this trip. We traveled about across 25 U.S. states, over 10 national parks, a number of national monuments (I don’t have a detailed list of these, there were many), 15,000 miles of driving, about 28 days of van-lifing inside of a converted SUV. I highly recommend it for anyone who hasn’t tried: an impromptu trip with sufficient time set-aside but little to no constraints on where and when you can go (no reservations, appointments, etc). After this trip concluded, I spent a little time working in Burlington, VT at BETA technologies and then moved to Pittsburgh PA.

CMU has kept me incredibly busy so far. I am impressed and still overwhelmed by the sheer scale of resources, opportunities, and information that I am exposed to but I try to be a sponge for it all. Currently I am considering a number of different courses to take next semester as an elective (something quantum, something systems like O.S., something machine learning, something computer networking) but I do not have the information I need yet to make that decision. A stale blog that lacks recent posts should be deleted, thus here I am. And hopefully will be.

  • Jack

Finally behind cloudflare

Cloudflare always seemed like an interesting company/service to me, especially the lava lamps that they have. I finally put my website behind cloudflare (for a number of reasons) and configured everything earlier today to get it working again. The main sticking point for me was Github re-issuing an SSL certificate for the website after the DNS change. I also added an email address that forwards to my personal email with a jackchampagne.com extension.

The main reason that I put the website behind cloudflare was because of their Yubikeys offer (10 for $10 each discounted price). I have always wanted a set of yubikeys but found them to be cost prohibitive.

  • Jack

A curated list of videos

Its been 3 months…

Since my family moved, I have not been home (due to school) long enough to set up my server again. Anyways a few things have happened. Last Tuesday I had an interview with BETA Technologies for the embedded systems team. The next day (Wed, 4/13/22) I got the offer! Super excited about that. Talked to Jason Wolfson at AirCycler today to let him know that I am not coming back and chatted about aircraft for a bit. I have stumbled across another video that I find extremely good and was inspired to make a curated list of some of the best youtube videos I have watched over the years. The videos will be loosely educational, hopefully leaving the watchers with a sense of satisifaction and having learned something new or seen something beautiful

Thank you! Jack

Please see post below

This site continues to evolve as I work on my self-hosting project at home with gateway. I have transitioned most of the notetaking that I did here into Obsidian because of multiple reasons including quality, markdown linking support, graph view, and more.

One important note that I want to make is to check out math animations for some fun animations that aren’t public facing.

This blog was a technical project that I am moving to my private server in order to have more control over the hosting and build process of the static pages.

Thank you! Jack

An Ode to Free Software

There is a reason why I love free and open-source software. I love open-source because the code is auditable, security can be reviewed just by looking at the source, the software isn’t an opaque black box, and it creates a community around a piece of software.

Each one of these has side-effects that are, for the most part, beneficial to everyone.

  • Privacy that is verifiable and trackable
  • Security through bug reports and whatever patching process the project has
  • The power of anyone being able to propose changes to ensure a piece of software is working as intended for whatever use case
  • Support through others on forums, community wikis, and project documentation

The ‘Free’ in free and open-source software does not primarily represent the price (although all free software does not cost money). The ‘Free’ stands for freedom. That is, the freedom to use, distribute, modify software as you please. This is a beautiful thing. There is no such thing as ‘sunsetting’ a free and open-source software project, the community of those who use the software have the freedom to maintain it. You are protected from feature regression of features that you need. Paywalls for features shouldn’t be a thing, and if a project is truly free and open-source, you can modify it and redistribute as you wish.

In a sense, free and open-source software is like writing software where the code that gets put in is democratically accepted by a project community. If a project maintainer goes haywire and starts accepting questionably contributions and changes to their project, the community can make a fork. If the fork is truly better than the original, there is no reason why it can’t become the dominant and most widely-used version.

I like machines, tools, and ideas that last forever. People buy lathes from the 1960s because they are reasonably accurate but will last forever. Free and open-source software are the software tools that will last me forever. Because of that I am willing to put in the time now to find, learn, and configure said software for a lifetime of utility.

  • Jack

Slow roll of changes

Watching a lot of George Hotz recently. I am deeply inspired by his skills and his constant focus on his work. comma.ai and his new streams about the cherry computer are deeply interesting to me and I find that his content in general relates very well with my studies in statistics, mathematics, data science, machine learning, deep learning, and general computer science.

I started my REU (TRIPODS @ University of Massachusetts, Amherst) on Monday the 7th and since then have trained multiple models on my computer (actually my laptop because it has cuda cores). I am working on implementing a g-convolution into a new network to try and improve my preformance on a rotated and mirrored MNIST dataset. I haven’t quite figured out how each of the dimensions to my convolution is going to fit into the training but progress is coming along.

In other news, I am not so sure I want to stay with hugo. The popularity of jekyll really helps with finding themes and general documentation for me.

Been a while

  • Jack

This past week

I am going to be honest, last week was such a blur. On monday, I got home after a weekend with my mom and now its already Saturday afternoon. A lot of this has to do with how I’ve been spending my time, the workload at the end of the week due to exams, and also taking care of my family’s puppy Ivy.

I have two ideas of things that I want to do programming wise:

  1. Continue working on the youtube bot.
  2. Create a minecraft package manager (??)

I would love to keep my minecraft configurations up to date effortlessly. Litematica is very cool and useful.

I’m not sure what I should write here today but I am sure I will have more stuff to write about after this weekend.

Canning tomatoes

And we are back in Duxbury! After finishing up classes this morning, Lillian and I headed back to Duxbury to take Ivy to her first vet visit (Today!). Hailey and my father stayed home today and they instead took her which took some time pressure off of me. Once I got home, me and Lillian sat down on the couch and promptly took a 20 minute power nap (a really good one too might I add!)

This weekend was fantastic, lots of activities, canning, good food, and tons of laughs. Lillian and I left on Friday (9/18) at around 3ish so that we could make it in time for dinner to my moms. We made an italian style dinner with spaghetti and used the bread from brothers for olive oil dipping goodness. The meatballs in the tomato sauce were perfectly cooked and balanced everything out quite well.

The following day, we had a slow morning followed by a busy afternoon of going to farm stands to get ingredients (corn, tomatoes, and such) for tomorrow. We got back up to the lake and took the four wheeler out for a bit (which is in great shape!)… the dirt bike unfortunately did not want to start. We went to Norte, a mexican style restaurant in Stephentown, NY and the food was extremely delicious. Next time I go, I know I can fall back on a chicken chimichanga, the tortilla outside was perfection. We socialized with Mark Prescott, Ben, and Martha towards the end of our evening there and headed back to the camp where I gave Lillian a grueling Calc II lesson on integration, derivatives, and the definition of an integral (which she understood quite well). Zonk

On Sunday, we woke up, had some breakfast and starting doing homework almost right away. It was a busy day and also I got to see for the first time how much more homework Lillian had this semester over me (1st semester was equal, 2nd semester was busy for me, this one was busy for her). We then drove up the mountain to Dyken pond to do some chores, canning and also making of horseradish. Ron showed Mark, Ben, Me, my mom, Chris, and Lillian how to make horseradish from the roots. My mom gave me a brief walkthrough reminding me the steps of tomato canning.

  1. Sanitize the cans (don’t want to get botulism)
  2. Score the skin of the tomatoes
  3. Boil for 30 seconds for skin to peel back
  4. Core and remove all skin
  5. Cut into eights or sizable pieces and put into mason jars.
  6. Put 1 tbsp of salt with the tomatoes in the mason jar.
  7. Properly seal lids finger tight
  8. Place jars into warm water and bring to boil. Once boiling, let boil for 25 minutes.
  9. Let cool slowly to avoid cracking and check seals.

It is very messy but that is what makes it fun. Lillian and I had homework to do so we went back down the hill to get the rest of her math quiz done. I had taught her a lot of concepts and heplful things to know when she is doing integration. She really hooked on to the integration with e^x in the integrand which was cool to see. Then from there, she really understood what u substitution was doing (reverse chain rule). Doing reverse product rule (integration by parts) was a little more difficult as getting across the theory is hard to do intuitively for me. I gave her the mnemonic LIATE which really helped and lots of reminders about u = and dv = integrations. Always always always don’t forget your dx’s! The integral is equal to 0 without them.

We had a prime beef roast which was yummy and later that night we also made a delicious batch of pretzels. Incredibly, I was able to figure out how to do a four way braid without ever doing one before, and putting it into a pretzel form! Nice and salty.

After getting the coffee jitters out before bed, I slept almost completely uninterrupted in the cold until my 8am bio class.

Five guys was the play on the drive home, Bye bye for now!

An anniversary

On the couch with Lillian. In center Berlin and feeling sleepy.

Youtube Downloader 2

Today marks the first day of actual development on the youtube downloader version 2. For this version, I plan on adding a few useful features and changing the underlying workings and dependencies. Here are some ideas:

  • Make dependencies lightweight by looking at dependency source code
  • Remove shelve and replace by json file reading and writing

Feature additions:

  • Download playlist
  • Single video downloader

Possible additions:

  • Channel name search?
  • Continuous integration?

For one, I don’t think shelve is necessary for saving simple strings of urls. The multithreading is very nice in the previous version and I am very proud of it. I would like to organize this by making issues and refactoring the code so that it is more readable.