<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">

	<channel>
		<title>Joseph Petitti's Blog</title>
		<link>https://josephpetitti.com/blog</link>
		<description>This blog is a collection of random opinions and ramblings on a variety of topics including programming, software, films, and the great outdoors.</description>
			<image>
				<url>https://josephpetitti.com/images/logo.png</url>
				<title>Joseph Petitti's Blog</title>
				<link>https://josephpetitti.com/blog</link>
			</image>
		<language>en-us</language>
		<atom:link href="https://josephpetitti.com/blog/rss.xml" rel="self" type="application/rss+xml" />

		<item>
			<title>The underrated brilliance of American Psycho</title>
			<link>https://josephpetitti.com/blog/the-underrated-brilliance-of-american-psycho</link>
			<description>I've seen a lot of movies, and Mary Harron's 2000 psychological thriller American Psycho is one of my favorites of all time. Yet for some reason it seems like this masterpiece has mostly flown under the radar, seen as a curious but shallow origin of memes, and remembered with a casual "oh yeah, that was alright." This lack of acclaim for a film I rank among the likes of 2001: A Space Odyssey and The End of Evangelion is great injustice in my eyes, so I will try to explain what I like so much about it. Be warned, there be spoilers here, so for the best experience go watch the film first and come up with your own explanations, then come back and read this.</description>
			<pubDate>Mon, 22 Apr 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/the-underrated-brilliance-of-american-psycho</guid>
		</item>

		<item>
			<title>Audica and Beat Saber: how to do early access right and wrong</title>
			<link>https://josephpetitti.com/blog/audica-and-beat-saber-how-to-do-early-access-right-and-wrong</link>
			<description>Very rarely do you get such a perfect case study handed to you as with Audica and Beat Saber. Both are early access VR rhythm games on Steam and Oculus, both involve hitting red and blue notes with the correctly-colored weapon carried in each of you hands, and both are damn good fun. Let's take a look at how Audica takes advantage of early access to push content to early adopters while Beat Saber takes advantage of early access to take advantage of users.</description>
			<pubDate>Sun, 28 Apr 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/audica-and-beat-saber-how-to-do-early-access-right-and-wrong</guid>
		</item>

		<item>
			<title>Exploring the Shinichirō Watanabe Cinematic Universe</title>
			<link>https://josephpetitti.com/blog/exploring-the-shinichiro-watanabe-cinematic-universe</link>
			<description>Director Shinichirō Watanabe is well known for his science fiction and fantasy anime worlds filled with memorable characters, creative technology, and wonderous adventures. It appears that three of his critically acclaimed series, Cowboy Bebop, Space Dandy, and Carole &amp; Tuesday take place in the same universe, but the truth is much more complicated than that.</description>
			<pubDate>Thu, 02 May 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/exploring-the-shinichiro-watanabe-cinematic-universe</guid>
		</item>

		<item>
			<title>Meet the Cloud Office: the workplace of the future</title>
			<link>https://josephpetitti.com/blog/meet-the-cloud-office-the-workplace-of-the-future</link>
			<description>Nobody wants to deal with the hassle of maintaining hardware. It's expensive, difficult, and time consuming to set up your own networked infrastructure, and many companies just aren't dealing with it any more. But as more and more of our computer systems are transitioned into the cloud, we could end up in a world where the office as we know it is obsolete.</description>
			<pubDate>Thu, 09 May 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/meet-the-cloud-office-the-workplace-of-the-future</guid>
		</item>

		<item>
			<title>Adventures in system administration - Part 1</title>
			<link>https://josephpetitti.com/blog/adventures-in-system-administration-part-1</link>
			<description>Part 1 of an ongoing guide documenting my process of setting up a virtual network of servers to host various services for me</description>
			<pubDate>Sun, 26 May 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/adventures-in-system-administration-part-1</guid>
		</item>

		<item>
			<title>How to change Wordpress URLs in the database</title>
			<link>https://josephpetitti.com/blog/how-to-change-wordpress-urls-in-the-database</link>
			<description>Wordpress has a nasty habit of redirecting you to what it thinks the correct domain name is, and this value is hidden in multiple obscure places in the database. If you've ever had to migrate a Wordpress site from one domain name to another you've probably encountered this problem. Fortunately, there is a relatively painless way to reconfigure Wordpress to use the new domain name from inside its database.</description>
			<pubDate>Fri, 31 May 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-to-change-wordpress-urls-in-the-database</guid>
		</item>

		<item>
			<title>Adventures in system administration - Part 2</title>
			<link>https://josephpetitti.com/blog/adventures-in-system-administration-part-2</link>
			<description>Part 2 of an ongoing series about setting up a network of virtual servers. In this post, we configure Foreman and and a virtual network to allow unattended creation and provisioning of virtual hosts.</description>
			<pubDate>Wed, 5 Jun 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/adventures-in-system-administration-part-2</guid>
		</item>

		<item>
			<title>How to toggle styles on click in pure CSS</title>
			<link>https://josephpetitti.com/blog/how-to-toggle-styles-on-click-in-pure-css</link>
			<description>There are plenty of times in front-end web development where you want to toggle between two different CSS rules when an element is clicked. Maybe you want a custom menu to drop down, or a set of tabs to show different information. Either way, you could do this with some simple JavaScript. Or, you could use a CSS hack to do it without any scripts at all.</description>
			<pubDate>Thu, 13 Jun 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-to-toggle-styles-on-click-in-pure-css</guid>
		</item>

		<item>
			<title>My top 10 favorite research papers</title>
			<link>https://josephpetitti.com/blog/my-top-10-favorite-research-papers</link>
			<description>Some of the most amusing or intriguing studies, reports, and scientific papers I've stumbled across</description>
			<pubDate>Tue, 25 Jun 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/my-top-10-favorite-research-papers</guid>
		</item>

		<item>
			<title>Four days in Seoul</title>
			<link>https://josephpetitti.com/blog/four-days-in-seoul</link>
			<description>After an exhausting 44-hour journey involving planes, trains, and automobiles, I arrived in Seoul, South Korea this past Sunday. I'll be spending the next three months in Kyoto, Japan working on my Major Qualifying Project for WPI, but before that I wanted to spend some time seeing another city I had never been to before.</description>
			<pubDate>Sat, 20 Jul 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/four-days-in-seoul</guid>
		</item>

		<item>
			<title>Thoughts on Japan</title>
			<link>https://josephpetitti.com/blog/thoughts-on-japan</link>
			<description>As I mentioned in my last blog post, I'm spending three months in Japan to work on my Major Qualifying Project, a graduation requirement of WPI. Now that I've been here for almost four weeks I can talk a bit about what Japan is like, and my experiences here.</description>
			<pubDate>Wed, 14 Aug 2019 12:00:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/thoughts-on-japan</guid>
		</item>

		<item>
			<title>Japanese rhythm games: my new addiction</title>
			<link>https://josephpetitti.com/blog/japanese-rhythm-games-my-new-addiction</link>
			<description>I've written previously about my love of Audica and Beat Saber but those aren't the only rhythm games I play. I used to be pretty good at Guitar Hero, and I've recently gotten into Stepmania. However, studying in Japan has introduced me to the magical world of Japanese arcade rhythm games, a new class of game that is threatening to consume all my money.</description>
			<pubDate>Fri, 30 Aug 2019 15:00:16 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/japanese-rhythm-games-my-new-addiction</guid>
		</item>

		<item>
			<title>Fuji-Q Highland: proof that you can make a theme park out of anything</title>
			<link>https://josephpetitti.com/blog/fuji-q-highland-proof-that-you-can-make-a-theme-park-out-of-anything</link>
			<description>This weekend I traveled across Japan to climb Mount Fuji, the highest mountain in the country and one of the most beautiful and recognizable mountains in the world. But before starting the climb, three fellow students and I spent a night in Fujiyoshida, Yamanashi to go to Fuji-Q Highland, a Mount Fuji-themed amusement park.</description>
			<pubDate>Wed, 11 Sep 2019 13:33:59 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/fuji-q-highland-proof-that-you-can-make-a-theme-park-out-of-anything</guid>
		</item>

		<item>
			<title>How to climb Mount Fuji</title>
			<link>https://josephpetitti.com/blog/how-to-climb-mount-fuji</link>
			<description>Last week, after spending a day at Fuji-Q Highland, I set out with a group of three other students to climb to the highest point in Japan, the summit of Mount Fuji.</description>
			<pubDate>Wed, 18 Sep 2019 09:49:26 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-to-climb-mount-fuji</guid>
		</item>

		<item>
			<title>Leap seconds are actually a terrible idea</title>
			<link>https://josephpetitti.com/blog/leap-seconds-are-actually-a-terrible-idea</link>
			<description>About once every four years the powers that be slide an extra day into the calendar between February 28th and March 1st, to ensure that our timekeeping system stays in sync with the actual rotation of the Earth. We call this a leap year, and the current system of deciding when to add these extra days has remained unchanged for the past 437 years. However, recently Coordinated Universal Time has started adding leap seconds to particular years as well, a phenomenon which is causing all sorts of trouble for timekeeping around the world.</description>
			<pubDate>Wed, 25 Sep 2019 06:34:24 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/leap-seconds-are-actually-a-terrible-idea</guid>
		</item>

		<item>
			<title>Quines in JavaScript</title>
			<link>https://josephpetitti.com/blog/quines-in-javascript</link>
			<description>Because programmers have nothing better to do with their free time, they often amuse themselves by finding clever solutions to difficult logic problems. One such problem is called a "quine," and it goes something like this: write the shortest possible program the prints its own source code.</description>
			<pubDate>Sun, 29 Sep 2019 07:31:16 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/quines-in-javascript</guid>
		</item>

		<item>
			<title>How to take beautiful notes with Pandoc</title>
			<link>https://josephpetitti.com/blog/how-to-take-beautiful-notes-with-pandoc</link>
			<description>Taking notes by hand is so old fashioned. You can't version control or backup paper, it's hard to search through, and a small mistake can force you to cross out or erase a whole line of text. But taking good notes on a computer has a host of problems of its own. Fiddling with formatting and typesetting is time-consuming, and it's hard to include mathematical notation, images, and other elements that are easy to write by hand but hard to type. Fortunately, I've found a solution that's easy and fun to use: writing Markdown and compiling it to a LaTeX-produced PDF with Pandoc. Read on to learn how I do it.</description>
			<pubDate>Thu, 31 Oct 2019 07:15:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-to-take-beautiful-notes-with-pandoc</guid>
		</item>

		<item>
			<title>The C ??!??! operator</title>
			<link>https://josephpetitti.com/blog/the-c-%3F%3F!%3F%3F!-operator</link>
			<description> The C programming language has a bit of a reputation for having weird syntax. The #define directive, pointer declaration, and uncommon array indexing methods can all make it hard to understand what's going on in a C program. Still, some of C's weirdness manages to surprise me even after using it for a few years. For example, what do you think this expression does: !x ??!??! y();</description>
			<pubDate>Fri, 15 Nov 2019 18:53:13 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/the-c-%3F%3F!%3F%3F!-operator</guid>
		</item>

		<item>
		<title>Making a simple text-based game in C++</title>
			<link>https://josephpetitti.com/blog/making-a-simple-text-based-game-in-c++</link>
			<description>For the WPI course IMGD 3000 - Technical Game Development 1, I worked over the course of seven weeks to make a fully-featured game engine in C++. It uses simple text-based ASCII graphics and handles events, input, sounds, sprites, collisions, and other basic features. As a final project, to show off the features of this engine, I worked with a partner to make a fun game using it. The game, called "XiQ", is a fast-paced arcade puzzle game based on the Taito classic Qix.</description>
			<pubDate>Thu, 11 Dec 2019 02:47:09 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/making-a-simple-text-based-game-in-c++</guid>
		</item>

		<item>
			<title>Using AI to make and play Mario Levels</title>
			<link>https://josephpetitti.com/blog/using-ai-to-make-and-play-mario-levels</link>
			<description>This term I decided to branch out from my usual computer science courseload and try out a class from a very similar department: Interactive Media and Game Development. To that end I took a class called 'Artificial Intelligence in Interactive Media and Games,' which turned out to be a lot of fun. (It's also nice that it counts for CS credit). One of the projects I did for the class was to use various AI techniques to build a generator for Super Mario Bros. levels, and an agent that can appear human while playing them. A partner and I used Ahmed Khalifa's Mario AI framework to implement these systems in Java, and they both ended up working pretty well.</description>
			<pubDate>Sat, 14 Dec 2019 04:06:14 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/using-ai-to-make-and-play-mario-levels</guid>
		</item>

		<item>
			<title>The Dilbert TV series is way better than it should be</title>
			<link>https://josephpetitti.com/blog/the-dilbert-tv-series-is-way-better-than-it-should-be</link>
			<description>Everyone's read Dilbert in the daily newspaper or seen it taped to a boss or professor's door, but few know about the animated TV series based on it that ran for 30 episodes in 1999-2000. I had the good fortune of stumbling across this cartoon recently, and it turned out to be way better than I expected, given the lack of acclaim I hear for it.</description>
			<pubDate>Thu, 19 Dec 2019 09:52:18 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/the-dilbert-tv-series-is-way-better-than-it-should-be</guid>
		</item>

		<item>
			<title>Some trivia I've noticed about FLCL</title>
			<link>https://josephpetitti.com/blog/some-trivia-ive-noticed-about-flcl</link>
			<description>FLCL, a classic six-episode OVA series from Studio Gainax and director Kazuya Tsurumaki (known for his work on Evangelion), is well known for being kind of confusing. Its blistering fast pace, wild animation style, and total disdain for holding the viewer's hand makes it difficult to follow on a first viewing. But after watching the series maybe a dozen times, I finally think I mostly get what it's about, and even noticed a few cool things that I missed on my first viewings.</description>
			<pubDate>Mon, 30 Dec 2019 22:39:34 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/some-trivia-ive-noticed-about-flcl</guid>
		</item>

		<item>
			<title>My favorite media of 2019</title>
			<link>https://josephpetitti.com/blog/my-favorite-media-of-2019</link>
			<description>It's the start of a brand new year! And what better way to boldly step into 2020 than by talking about a bunch of stuff that happened in 2019. Here I'll list my favorite movie, album, anime, manga, western TV show, and video game from 2019. Consider all of these strong recommendations.</description>
			<pubDate>Wed, 01 Jan 2020 11:36:56 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/my-favorite-media-of-2019</guid>
		</item>

		<item>
			<title>How to install Koel on Fedora 30</title>
			<link>https://josephpetitti.com/blog/how-to-install-koel-on-fedora-30</link>
			<description>Koel is a cool web application built on PHP and Vue.js for streaming your music collection over the internet. Basically it's like having your own personal Spotify, except it's free and open source. Since I couldn't find any detailed guide for installing it and all its dependencies on a Fedora server, I decided to write my own.</description>
			<pubDate>Sun, 05 Jan 2020 09:31:22 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-to-install-koel-on-fedora-30</guid>
		</item>

		<item>
			<title>Designing an extensible power up system</title>
			<link>https://josephpetitti.com/blog/designing-an-extensible-power-up-system</link>
			<description>Continuing to work on a project I started last term in AI for Interactive Media and Games, I designed a flexible power up system in which power ups synergize with each other automatically.</description>
			<pubDate>Sat, 25 Jan 2020 10:26:15 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/designing-an-extensible-power-up-system</guid>
		</item>

		<item>
			<title>Making a 2D game with no art assets</title>
			<link>https://josephpetitti.com/blog/making-a-2d-game-with-no-art-assets</link>
			<description>In my last blog post I wrote about the game I'm working on with two of my friends. It now officially has a name, Afterlight Caves, and we're going to be showing it off at the WPI booth at PAX East, February 27 through March 1 2020. In this post I'll talk about how three computer science majors with no artistic ability between them were able to make a decent looking game.</description>
			<pubDate>Fri, 20 Feb 2020 23:16:45 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/making-a-2d-game-with-no-art-assets</guid>
		</item>

		<item>
			<title>Ray marching in a grid-aligned world</title>
			<link>https://josephpetitti.com/blog/ray-marching-in-a-grid-aligned-world</link>
			<description>In many games or other graphical applications, there is often a need to draw a ray from a point until it hits an object. This is the fundamental operation of ray tracing, an essential technique in computer graphics: drawing reflecting and refracting light rays from a light source to the camera. Unfortunately, this process is quite computationally expensive, which is why most real-time graphics programs only approximate it. However, if you can simplify the world you can make ray tracing a lot easier, and it can be useful in many applications. In the game I'm working on, Afterlight Caves, I implemented a type of ray casting to draw laser beams on the game world.</description>
			<pubDate>Sun, 23 Feb 2020 22:10:22 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/ray-marching-in-a-grid-aligned-world</guid>
		</item>

		<item>
			<title>Presenting at PAX East</title>
			<link>https://josephpetitti.com/blog/presenting-at-pax-east</link>
			<description>For the past few months I've been workin on a procedurally-generated top-down twinstick shooter game for the web, as I've written about previously. Although I've just been developing it when my friends in our spare time, WPI selected it to be shown off at their booth at PAX East. The WPI booth showcases student-made games as a way of promoting the school's Interactive Media and Game Design (IMGD) program. What this means is that I got to go to PAX East for free to show off my game.</description>
			<pubDate>Tue, 03 Mar 2020 23:44:01 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/presenting-at-pax-east</guid>
		</item>

		<item>
			<title>Half-Life: Alyx is what VR games should be</title>
			<link>https://josephpetitti.com/blog/half-life-alyx-is-what-vr-games-should-be</link>
			<description>Thirteen years after Episode 2, Valve finally returns to the Half-Life universe with a VR-exclusive prequel titled Half-Life: Alyx. You play as resistance member Alyx Vance in between the events of the first and second game, attempting to fight the brutal alien combine enslaving Earth. The game is designed for Valve's new Index headset, but will work with any PC VR headset on the market. Expectations were understandably high for the long-awaited continuation of the Half-Life franchise, but Alyx more than lives up to them, setting a new standard for VR gameplay.</description>
			<pubDate>Tue, 24 Mar 2020 20:27:02 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/half-life-alyx-is-what-vr-games-should-be</guid>
		</item>

		<item>
			<title>Enlightenment through repetition in Groundhog Day</title>
			<link>https://josephpetitti.com/blog/enlightenment-through-repetition-in-groundhog-day</link>
			<description>In this post, I examine some of the philosophical meaning behind the film Groundhog Day, and argue for an existentialist reading of the film.</description>
			<pubDate>Sun, 26 Apr 2020 06:58:28 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/enlightenment-through-repetition-in-groundhog-day</guid>
		</item>

		<item>
			<title>Finally getting some use out of my trackball with Spin Rhythm XD</title>
			<link>https://josephpetitti.com/blog/finally-getting-some-use-out-of-my-trackball-with-spin-rhythm-xd</link>
			<description>I've had a trackball mouse for a couple of years now, and while I like it for most casual browsing it is definitely not good for games. You just can't match the speed and precision of a real mouse when it comes to first person games that require aiming. For pointer-based games like Factorio or Cities: Skylines a trackball is about the same as a regular mouse. But I may have just found the one game that's actually better with a trackball: Spin Rhythm XD.</description>
			<pubDate>Mon, 18 May 2020 18:34:44 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/finally-getting-some-use-out-of-my-trackball-with-spin-rhythm-xd</guid>
		</item>

		<item>
			<title>The corrupting influence of television in Network</title>
			<link>https://josephpetitti.com/blog/the-corrupting-influence-of-television-in-network</link>
			<description>Sidney Lumet's 1976 classic Network ends with a blunt summary of its plot: "This was the story of Howard Beale, the first known instance of a man who was killed because he had lousy ratings." While the life and death of network news anchorman Howard Beale (played by Peter Finch) is certainly an important part of the film, it's telling that Beale's actor is third billed in what is ostensibly his own story. Howard, along with most of the other characters in the film, is simply along for the ride, unable to influence or control the true focus of the film: the destructive power of television.</description>
			<pubDate>Mon, 26 May 2020 04:41:43 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/the-corrupting-influence-of-television-in-network</guid>
		</item>

		<item>
			<title>Training a computer to play Jotto</title>
			<link>https://josephpetitti.com/blog/training-a-computer-to-play-jotto</link>
			<description>I've always liked word games like Scattergories and Scrabble, they tend to be a good mix of creativity and strategy. When I had to decide on a final project for a graduate-level artificial intelligence class last term it was a perfect opportunity to make a program that played a word game. But Scattegories and Scrabble are both trivial for machines to play—their decision trees are narrow enough that you can easily perform an exhaustive search for the best possible move. One of my teammates introduced a much more interesting game for computers to play: Jotto.</description>
			<pubDate>Wed, 17 Jun 2020 16:15:46 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/training-a-computer-to-play-jotto</guid>
		</item>

		<item>
			<title>Lupin III: The First brings the franchise to 3D—and it works</title>
			<link>https://josephpetitti.com/blog/lupin-iii-the-first-takes-the-franchise-to-3d-and-it-works</link>
			<description>It's nice to see that Japan is getting better at 3D animation. For too long we've had to put up with horrible 3DCG posing as traditional animation by using ugly flat shading and animating on twos, like Graphinica's Expelled from Paradise or Polygon Pictures' Knights of Sidonia, Blame! and Godzilla films.  This style always ends up looking stiff and janky, and far worse than the 2D animation it's trying to immitate. But we can all rejoice now, because it seems that the era of terrible 3D anime is coming to an end. Lupin III: The First is the newest entry in the long-running Japanese franchise following gentleman thief Arsène Lupin III. This is the first entry to use 3D animation, and while it's not as technically impressive as your standard Disney/Pixar fare, it's fast, stylish, and damn good looking. It uses a unique art style that captures the iconic 2D character designs while using smooth animation and realistic lighting.</description>
			<pubDate>Tue, 23 Jun 2020 22:00:07 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/lupin-iii-the-first-takes-the-franchise-to-3d-and-it-works</guid>
		</item>

		<item>
			<title>Hiking Cannon Mountain</title>
			<link>https://josephpetitti.com/blog/hiking-cannon-mountain</link>
			<description>I had last Friday off from work on account of Independence Day weekend, so I decided to spend the day hiking one of New Hampshire's most famous 4000-footers. Cannon Mountain is part of the Kinsman Ridge in the White Mountains of New Hampshire, and made for a challenging but rewarding day hike.</description>
			<pubDate>Sun, 05 Jul 2020 17:23:41 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/hiking-cannon-mountain</guid>
		</item>

		<item>
			<title>How CSS can leak your browser history</title>
			<link>https://josephpetitti.com/blog/how-css-can-leak-your-browser-history</link>
			<description>Despite the huge effort that goes into making browsers secure, there are still a few ways they can expose your private data to attackers if you aren't careful. Most involve some kind of complex fingerprinting using JavaScript, but there is a way to trick users into giving up their browsing history using only CSS: with the :visited pseudo-class.</description>
			<pubDate>Mon, 24 Aug 2020 20:30:48 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-css-can-leak-your-browser-history</guid>
		</item>

		<item>
			<title>How accessibility undermines Android's security</title>
			<link>https://josephpetitti.com/blog/how-accessibility-undermines-androids-security</link>
			<description>As smartphones become more powerful and ubiquitous the incentives for malicious actors to hijack them continue to grow. Gaining access to a target's phone can yield bank account passwords, 2-factor authentication codes, contacts information, and all kinds of other juicy data. Google is constantly trying to protect their platform while still giving app developers freedom to make what they want, and for the most part they succeed. Applications are generally sandboxed from each other, and require granular permissions that users must manually accept in order to access hardware and OS resources. But there's one area where Android subverts its own strong sanboxing principles: accessibility services.</description>
			<pubDate>Tue, 22 Sep 2020 20:39:15 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/how-accessibility-undermines-androids-security</guid>
		</item>

		<item>
			<title>Object-oriented functions in JavaScript</title>
			<link>https://josephpetitti.com/blog/object-oriented-functions-in-javascript</link>
			<description>As you may know, JavaScript is a bit of an indecisive language. It doesn't fully commit to any one paradigm, instead having features from object-oriented, procedural, and functional languages. Its mish-mash of philosophies can make it confusing to learn, but once in a while it manages to surprise me with some clever design decision. For example, the fact that all functions are objects that can be extended and inherited from like any other opens up some powerful possibilities.</description>
			<pubDate>Sun, 08 Nov 2020 21:11:30 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/object-oriented-functions-in-javascript</guid>
		</item>

		<item>
			<title>Detecting stealthy Android malware</title>
			<link>https://josephpetitti.com/blog/detecting-stealthy-android-malware</link>
            <description>A brief outline of my goals and approach to my thesis project, using Android UI context to enable the detection of stealthy malware.</description>
			<pubDate>Sun, 21 Mar 2021 23:29:40 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/detecting-stealthy-android-malware</guid>
		</item>

		<item>
			<title>Participating in my first game jam</title>
			<link>https://josephpetitti.com/blog/participating-in-my-first-game-jam</link>
            <description>This past weekend I participated my first game jam—a competition in which individuals or teams rush to design and create a new game within a time limit, in this case 48 hours. The jam in question was the annual GMTK game jam, one of the biggest in the world. I worked with four of my friends (three other programmers and an artist) from 2 PM Friday through 2 PM Sunday to create SCHLORP, finishing just seven minutes before the deadline. While the game is a bit simplistic and bare, it's actually pretty fun to play, and was a bunch of fun to make.</description>
			<pubDate>Mon, 14 Jun 2021 22:53:27 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/participating-in-my-first-game-jam</guid>
		</item>

		<item>
			<title>Winter is the best season for hiking</title>
			<link>https://josephpetitti.com/blog/winter-is-the-best-season-for-hiking</link>
            <description>A lot of people seem to be afraid of hiking in the winter, but it's actually my favorite time of the year to get outdoors. Winter weather can make hiking a lot easier and more enjoyable, at least here in the north east.</description>
			<pubDate>Tue, 26 Apr 2022 18:27:28 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/winter-is-the-best-season-for-hiking</guid>
		</item>

		<item>
			<title>I watched all of Gundam</title>
			<link>https://josephpetitti.com/blog/i-watched-all-of-gundam</link>
            <description>Over the past 14 months I watched every TV episode, OVA, and movie in the Mobile Suit Gundam franchise in production order. I've seen plenty of mecha anime before, but this was the first time I had seen anything from the biggest real robot franchise in the world. And I have to say I was quite impressed. Gundam has its reputation for a reason, with incredible mechanical designs, compelling characters and classic stories that hold up to this day.</description>
			<pubDate>Tue, 16 Aug 2022 17:05:16 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/i-watched-all-of-gundam</guid>
		</item>

		<item>
			<title>Assembling jigsaw puzzles for Advent of Code</title>
			<link>https://josephpetitti.com/blog/assembling-jigsaw-puzzles-for-advent-of-code</link>
            <description>While waiting for this year's Advent of Code to start I've been going back to complete some of the challenges I never got around to finishing in previous years. One of these is Day 20, 2020.</description>
			<pubDate>Wed, 02 Nov 2022 16:16:32 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/assembling-jigsaw-puzzles-for-advent-of-code</guid>
		</item>

		<item>
			<title>Gunbuster references in Nadia</title>
			<link>https://josephpetitti.com/blog/gunbuster-references-in-nadia</link>
            <description>It's no secret that Studio Gainax likes to hide references to other anime in their shows, with varying degrees of subtlety. But perhaps the most interesting are the parallels between their first OVA series, Gunbuster, and their first TV series Fushigi no Umi no Nadia.</description>
			<pubDate>Fri, 27 Jan 2023 16:27:12 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/gunbuster-references-in-nadia</guid>
		</item>

		<item>
			<title>Backpacking the southern Presidentials</title>
			<link>https://josephpetitti.com/blog/backpacking-the-southern-presidentials</link>
            <description>This past weekend I took a day off work to get in some solo backpacking in New Hampshire's Presidential Range. It ended up being the most scenic, and the most strenuous hiking trip I've ever done.</description>
			<pubDate>Tue, 01 Aug 2023 20:54:11 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/backpacking-the-southern-presidentials</guid>
		</item>

		<item>
			<title>Solving Advent of Code the lazy way</title>
			<link>https://josephpetitti.com/blog/solving-advent-of-code-the-lazy-way</link>
            <description>Advent of Code is an annual set of programming puzzles that I've written about previously. I've participated in AoC for several years, but 2023 was only the second time I've completed a full year as it came out. All my solutions are written in Haskell, but I had to use some 'hacky' techniques to get some of the answers.</description>
			<pubDate>Thu, 04 Jan 2024 16:19:25 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/solving-advent-of-code-the-lazy-way</guid>
		</item>

		<item>
			<title>2024 in review</title>
			<link>https://josephpetitti.com/blog/2024-in-review</link>
            <description>I look back on everything I did in 2024.</description>
			<pubDate>Fri, 20 Dec 2024 16:49:15 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/2024-in-review</guid>
		</item>

		<item>
			<title>Backpacking the Adirondacks in April</title>
			<link>https://josephpetitti.com/blog/backpacking-the-adirondacks-in-april</link>
            <description>Early Spring can mean a variety of conditions in the mountains, and I got to experience exactly that when I went on an overnight backpacking trip last weekend. In just 18 miles round-trip I summitted four 4,000-footers and experienced steep scrambles, roaring waterfalls, deep snow, hot sun, and cold rain.</description>
			<pubDate>Thu, 22 Apr 2025 23:16:40 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/backpacking-the-adirondacks-in-april</guid>
		</item>

		<item>
			<title>Backpacking Mount Isolation in the rain</title>
			<link>https://josephpetitti.com/blog/backpacking-mount-isolation-in-the-rain</link>
            <description>Last weekend I headed out into one of the most remote parts of the White Mountain National Forest to climb Mount Isolation via some less-used trails. On the two-day trip I experienced pouring rain, difficult trails, a bear encounter, and lots of true isolation.</description>
			<pubDate>Tue, 09 Sep 2025 20:02:00 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/backpacking-mount-isolation-in-the-rain</guid>
		</item>

		<item>
			<title>2025 in review</title>
			<link>https://josephpetitti.com/blog/2025-in-review</link>
            <description>I look back on everything I did in 2025.</description>
			<pubDate>Sun, 11 Jan 2026 16:59:06 GMT</pubDate>
			<guid>https://josephpetitti.com/blog/2025-in-review</guid>
		</item>
	</channel>
</rss>
