<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Taylor Petrick's Blog</title><link>https://www.taylorpetrick.com/blog</link><atom:link href="https://www.taylorpetrick.com/blog/rss" rel="self" type="application/rss+xml"></atom:link><description>A blog on computer graphics, video games and technology</description><language>en-US</language><lastBuildDate>Wed, 11 May 2016 13:34:45 -0400</lastBuildDate><item><title>A Quasi-Random Number Generator</title><link>https://www.taylorpetrick.com/blog/post/quasi-random-dist</link><description>I decided to implement a non-uniform random number generator for use in video games. The purpose of the technique is produce random events that are more consistent than a uniform distribution, similar to stratified sampling.</description><pubDate>Wed, 11 May 2016 13:34:45 -0400</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/quasi-random-dist</guid></item><item><title>CS 452: Train Tracking</title><link>https://www.taylorpetrick.com/blog/post/cs452-train-tracking</link><description>In CS 452 I've been developing a system for tracking train position, velocity and acceleration. The model will be used as part of a train scheduler, which my partner and I are actively working on.</description><pubDate>Tue, 15 Mar 2016 20:18:52 -0400</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/cs452-train-tracking</guid></item><item><title>unLit: An Introduction</title><link>https://www.taylorpetrick.com/blog/post/unlit-ai-demo</link><description>For the last year I've been working on a video game with three other students at Waterloo. Named &lt;a href='https://www.taylorpetrick.com/unlit' target='_blank'&gt;unLit&lt;/a&gt;, the game is a top down shooter with randomly generated maps and adaptive AI. We developed unLit as our engineering design project.</description><pubDate>Mon, 29 Feb 2016 18:06:24 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/unlit-ai-demo</guid></item><item><title>HTTPS with Node.js and Let's Encrypt</title><link>https://www.taylorpetrick.com/blog/post/https-nodejs-letsencrypt</link><description>I recently upgraded my website to serve content using HTTPS instead of HTTP. This required an SSL certificate, which I generated using the Let's Encrypt toolchain. The post includes sample code for configuring an HTTPS server in Node.js.</description><pubDate>Tue, 16 Feb 2016 13:21:22 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/https-nodejs-letsencrypt</guid></item><item><title>CS 452: The 72-Hour Bug</title><link>https://www.taylorpetrick.com/blog/post/cs452-72-hour-bug</link><description>While working on our CS 452 project, my partner and I encountered an elusive kernel bug that took hours of debugging to track down. The bug was caused by incorrect assumptions about the way our code was loaded into memory by the hardware.</description><pubDate>Thu, 11 Feb 2016 22:08:20 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/cs452-72-hour-bug</guid></item><item><title>CS 452: Optimizing The Kernel</title><link>https://www.taylorpetrick.com/blog/post/cs452-optimization</link><description>The CS 452 instructors provide performance guidelines for inter-task communication that students are expected to meet. A round trip time of 30 to 60 microseconds is sufficient, however my partner and I put in extra work to achieve better times.</description><pubDate>Wed, 03 Feb 2016 17:01:01 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/cs452-optimization</guid></item><item><title>The Raspboot Bootloader</title><link>https://www.taylorpetrick.com/blog/post/the-raspboot-bootloader</link><description>The embedded system bootloaders I evaluated didn't support the features required for my work, so I wrote my own. Raspboot allows me to load binaries to my RPi over a serial port (UART), and will eventually be extended to support basic debugging utilities.</description><pubDate>Mon, 25 Jan 2016 17:28:40 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/the-raspboot-bootloader</guid></item><item><title>Bare Metal Raspberry Pi: Setup</title><link>https://www.taylorpetrick.com/blog/post/bare-metal-pi-setup</link><description>The Raspberry Pi is a cheap ARM system that's able to connect to peripherals, run Linux and interact with GPIO pins. I decided try doing embedded development on the Pi - writing code directly for the hardware, not for an existing OS.</description><pubDate>Sat, 16 Jan 2016 22:30:21 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/bare-metal-pi-setup</guid></item><item><title>CS 452: First Impressions</title><link>https://www.taylorpetrick.com/blog/post/cs452-impressions</link><description>For my last term at U. Waterloo I decided to take CS 452, a real-time operating systems course. The course is quite time consuming, however so far I've found the material to be interesting.</description><pubDate>Mon, 11 Jan 2016 21:26:27 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/cs452-impressions</guid></item><item><title>Convolution Part Four: Separable Kernels</title><link>https://www.taylorpetrick.com/blog/post/convolution-part4</link><description>The fourth post my in series on the use of convolutions in image processing. This post discusses a special property of some kernels that allows them to expressed as the product of two vectors. This can be used to simplify the convolution operator.</description><pubDate>Wed, 06 Jan 2016 22:19:13 -0500</pubDate><guid isPermaLink="false">https://www.taylorpetrick.com/blog/post/convolution-part4</guid></item></channel></rss>