Merge the real site metadata into this repo
This commit is contained in:
parent
02a17e1465
commit
55610cb0ba
62 changed files with 1989 additions and 1 deletions
10
_pages/about.yaml
Executable file
10
_pages/about.yaml
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: About me
|
||||
url: /about/
|
||||
slug: about
|
||||
---
|
||||
|
||||
This about page was incredibly out-of-date, so I removed it. If you want to know who I am or what I'm up to, check out these links:
|
||||
|
||||
* [Twitter](https://twitter.com/nickpegg)
|
||||
* [GitHub](https://github.com/nickpegg)
|
||||
73
_pages/projects.yaml
Normal file
73
_pages/projects.yaml
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
---
|
||||
title: Projects
|
||||
url: /projects/
|
||||
---
|
||||
Here's a decent number of the projects I've worked on in the past.
|
||||
**This is mostly ancient and you should probably check out my [GitHub](https://github.com/nickpegg) profile instead**
|
||||
|
||||
### Posty (2010)
|
||||
Links: [GitHub](https://github.com/nickpegg/posty)
|
||||
|
||||
Just a little static page generator I wrote when I got sick of using
|
||||
Wordpress. It's quick, it's dirty, but it does what I need it to.
|
||||
|
||||
I guess I'm just never satisfied with using pre-made software packages
|
||||
to run my personal website.
|
||||
|
||||
### Beertraq (2009)
|
||||
Links: [Website](https://beertraq.com/)
|
||||
|
||||
A website to keep track of which beers you've tried, compare with others,
|
||||
read their reviews, and discover new beer. Started in the summer of 2009,
|
||||
inspired by The Flying Saucer's UFO Club.
|
||||
|
||||
### Intelligent Drink Dispenser (2009)
|
||||
(No code available, sorry)
|
||||
|
||||
This is my Computer Engineering Senior Design project at the University of
|
||||
Missouri-Rolla. It's basically a robotic bartender which keeps track of
|
||||
customers (via RFID) and their purchases. This was an idea that Richard Allen
|
||||
and I have been kicking around for a few years, but it's finally come to life.
|
||||
|
||||
### Nick Tracker (Python, Java) (2008)
|
||||
(No code available, sorry)
|
||||
|
||||
Keeps track of where my phone's at, which is usually where I am. Server side
|
||||
script written in Python, client written in Java for the Android phone platform.
|
||||
Since I've written this, two better applications have hit the Android Market,
|
||||
including Google Latitude. I've stopped work on this because I don't feel like
|
||||
re-inventing the wheel.
|
||||
|
||||
### CPU Usage Meter (2006)
|
||||
Links: [Project page](/cpu-usage-meter/), [Linux source](/media/projects/cpu_meter.tar.gz)
|
||||
|
||||
LEDs on the front of my computer case displaying the CPU load.
|
||||
|
||||
### Serial IR Receiver (2006)
|
||||
Links: [Project page](/ir-receiver/)
|
||||
|
||||
A simple serial-based LIRC-compatible IR reciever.
|
||||
|
||||
### ServCheck (PHP)
|
||||
Links: [servCheck.tar.gz](/media/projects/servCheck.tar.gz)
|
||||
|
||||
A simple service checker written in PHP. Attempts to open a socket with the
|
||||
configured hosts and ports, and outputs an HTML file showing which services
|
||||
are up and down. I originally wrote this for the TerminalUnix site to show what's
|
||||
working and what isn't.
|
||||
|
||||
### TerminalUnix (PHP)
|
||||
A PHP and MySQL driven site, functioning as a web front-end and community site for
|
||||
the TerminalUnix server. I started it because I was sick of all of these Content
|
||||
Management Systems having features that I didn't want. I sat down during Spring Break
|
||||
of 2006 and coded a PHP login system, not knowing about the wonders of some of the PHP
|
||||
features. Eventually I coded nice things in such as MySQL access (instead of a flat
|
||||
text file), a user adminstration system, and even a news sytem.
|
||||
|
||||
Unfortunately I don't plan on releasing the source code since it's a big hard-coded mess.
|
||||
|
||||
### N-Queens solver (C++)
|
||||
Links: [nqueens.tar.gz](/media/projects/nqueens.tar.gz)
|
||||
|
||||
Another Data Structures homework assignment. This solves (brute-forces) the
|
||||
[N-Queens Problem](https://www.google.com/search?q=n-queens+problem) using recursion and backtracking.
|
||||
174
_pages/projects__kegerator.yaml
Normal file
174
_pages/projects__kegerator.yaml
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
---
|
||||
title: Kegerator
|
||||
url: /projects/kegerator/
|
||||
parent: Projects
|
||||
---
|
||||
I've been homebrewing for a couple of years now, and my least favorite part of
|
||||
the whole process is definitely the bottling. Each 5 gallon batch has
|
||||
approximately 55 bottles that you have to clean, santize, fill, cap, clean
|
||||
again, and put in boxes. I've gotten sick and tired of doing that for every
|
||||
batch of beer, so I decided to make the jump and build myself a kegerator.
|
||||
|
||||
![Kegerator mostly finished][0]
|
||||
|
||||
Building a kegerator is fairly simple, only requiring some plumbing and
|
||||
woodworking. The only hard part is the cost. Below is the cost for a
|
||||
three-keg setup similar to my current two-keg setup.
|
||||
|
||||
### Updates
|
||||
|
||||
#### Feb 20, 2011
|
||||
Got the kegerator built yesterday minus a temperature controller. I got a
|
||||
little drill-happy and accidentally made three faucet holes instead of two.
|
||||
Oops, I guess I'll have to put in that third faucet.
|
||||
|
||||
### Links
|
||||
* [Flickr set](https://www.flickr.com/photos/nickpegg/sets/72157625971333921/)
|
||||
|
||||
### Bill of Materials
|
||||
|
||||
<table border="1">
|
||||
<tr>
|
||||
<th>Qty</th>
|
||||
<th>Cost Each</th>
|
||||
<th>Item</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</th>
|
||||
<td>$198</td>
|
||||
<td>GE 7.0 cubic ft freezer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>$90</td>
|
||||
<td>5 pound CO2 tank</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>$75</td>
|
||||
<td>Dual gauge CO2 regulator</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>$47</td>
|
||||
<td>3-way CO2 distributor</td>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$40</td>
|
||||
<td>Used 5 gallon soda keg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$6.50</td>
|
||||
<td>Ball lock gas disconnect - MFL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$6.50</td>
|
||||
<td>Ball lock liquid disconnect - MFL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>$1.30</td>
|
||||
<td>1/4" barb-to-MFL connector</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>7</td>
|
||||
<td>$0.25</td>
|
||||
<td>Flared nylon washers for MFL connections</td>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$20</td>
|
||||
<td>Stainless steel faucet shank</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$2.25</td>
|
||||
<td>1/4" barbed shank tail piece and hex nut</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$0.10</td>
|
||||
<td>Rubber shank washer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$31.50</td>
|
||||
<td>Perlick beer faucet</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>$2</td>
|
||||
<td>Economy tap handle</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>$6.42</td>
|
||||
<td>12' 2x8</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>$3.37</td>
|
||||
<td>Roll of weather stripping</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>$5.65</td>
|
||||
<td>25' roll of poly ice maker tubing</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>14</td>
|
||||
<td>$0.65</td>
|
||||
<td>1/4" to 1/2" hose clamp</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left">Total</th>
|
||||
<th align="left">$758.09</th>
|
||||
<td></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
### Construction
|
||||
|
||||
By far the most popular way to build a kegerator outside of complete
|
||||
fabrication is to take an existing chest freezer and add a collar between the
|
||||
freezer and the original lid. This is what I did as seen below.
|
||||
|
||||
![Hinges][1]
|
||||
|
||||
An added bonus to the collar method is that you now have a wooden platform to
|
||||
add your faucets and other items without harming the original freezer, in case
|
||||
you decide to sell it later or actually use it for storing food. When building
|
||||
the collar, you'll want to use something like a 2x8 to have enough clearance
|
||||
for the old hinges to attach to the wood.
|
||||
|
||||
To help keep the cold air in the kegerator, it's a good idea to seal the
|
||||
collar. I just put some weather stripping down where the collar rests on the
|
||||
freezer and filled the collar joints with some extra oil pan sealant I had
|
||||
laying around. The weather stripping is nice because if you're not quite a
|
||||
master woodworker and can't be bothered to get the collar exactly square, it
|
||||
helps fill in your gaps.
|
||||
|
||||
Once the collar's on and the faucets are installed, it's just a matter of
|
||||
connecting everything. Don't forget to use your washers to get a good seal! You
|
||||
can hand-tighten the MFL connections, but it might be a better idea to tighten
|
||||
them with a pair of pliers.
|
||||
|
||||
### Pressure Testing
|
||||
|
||||
Once everything's together, you'll want to pressure test the entire dispensing
|
||||
system. What I did was fill the kegs with water and pressurize the whole system,
|
||||
and do some test pours. If you have any leaks, you'll either hear air hissing
|
||||
or see water leaking out.
|
||||
|
||||
![Pressure testing][2]
|
||||
|
||||
In the case that it is an air leak and you're not
|
||||
sure where it's coming from, disconnect things one by one until the
|
||||
hissing stops. The part that you last disconnected is the faulty one, so make
|
||||
sure that everything's tight on there, especially if it's a hose clamp on a
|
||||
barbed connection.
|
||||
|
||||
[0]: https://farm6.static.flickr.com/5135/5462665976_d11faea2aa.jpg "Mostly finished"
|
||||
[1]: https://farm6.static.flickr.com/5132/5462060669_436dbe852f.jpg
|
||||
[2]: https://farm6.static.flickr.com/5053/5462065415_efefbb9675.jpg "Pressure testing"
|
||||
84
_pages/projects_cpu_usage_meter.yaml
Normal file
84
_pages/projects_cpu_usage_meter.yaml
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
---
|
||||
title: CPU Usage Meter
|
||||
url: /projects/cpu-usage-meter/
|
||||
parent: Projects
|
||||
---
|
||||
Back in the day, there was a little obscure operating system called BeOS. The
|
||||
company which made the OS was brave enough to put it on their own hardware, too.
|
||||
This was dubbed the [BeBox](https://en.wikipedia.org/wiki/Bebox). Among all the
|
||||
neat doohickies on the computer were two CPU load meters (one for each processor).
|
||||
Now, how cool would it be to have a computer with those?
|
||||
|
||||
__Very.__
|
||||
|
||||
### Download
|
||||
Note: Linux code makes use of libserial and libstatgrab. Both must be installed for
|
||||
program to work/compile. The UM245R device uses the ftdi_sio driver. It's in the
|
||||
2.6 kernel tree, so it should (hopefully) be detected when you plug the device in.
|
||||
|
||||
USB controller program:
|
||||
|
||||
* [Linux code and executable](/media/projects/cpu_meter.tar.gz)
|
||||
* Windows code removed due to buginess
|
||||
|
||||
### Updates
|
||||
|
||||
#### Status Update - Nov 27 2007
|
||||
|
||||
Wow, it's been almost a year since I've put work on this. I decided to finally write
|
||||
code to make it work under Linux. I ended up throwing out the notion of trying to
|
||||
use libusb. After 4 hours of research and code hacking, it worked!
|
||||
|
||||
#### Status Update - Dec 08 2006
|
||||
|
||||
The hardware works and the software works (kinda). Once I get around to cleaning up
|
||||
some of the code and adding some documentation, I'll start uploading stuff. Stay tuned!
|
||||
|
||||
#### Status Update - Dec 02 2006
|
||||
|
||||
Got the hardware working on a breadboard. Using DLP's test program, various patterns
|
||||
were able to be sent. Video coming soon!
|
||||
|
||||
### Statistics:
|
||||
* Cost: $27.69
|
||||
* Lines of code (Linux): 83
|
||||
* Lines of code (Windows): 1503
|
||||
* Sleep lost: Unknown
|
||||
|
||||
### Hardware Design
|
||||
The hardware is pretty simple. Using an UM245R, most of the work is done for you. The
|
||||
[UM245R](https://www.ftdichip.com/Products/EvaluationKits/UM245R.htm) takes in USB data
|
||||
and outputs it on the 8 data pins, and those 8 pins directly drive the LEDs. It's not
|
||||
quite as simple as that, since there's all sorts of protocol with Ready-to-Read and
|
||||
Ready-to-Write and Read and Write pins that go high and low. I just cheated and used
|
||||
at 555 timer to generate a clock signal on the RD pin to give me the data. I just
|
||||
lucked out and the UM245R outputs the last data if there's no new data available.
|
||||
|
||||
[Circuit Design](/media/img/cpu_meter/circuit.png)
|
||||
|
||||
[Testing the circuit](/media/img/cpu_meter/testing.jpg)
|
||||
|
||||
### Software
|
||||
As with any hardware, there needs to be software which controls it. For the Windows
|
||||
code, I decided to use [LibUSB](https://libusb.sf.net/) to help me with this project. Programming with LibUSB
|
||||
is fairly straightforward, which helps since the documentation is rather spotty. Along
|
||||
with LibUSB, I also took the Queue class from [nicklib](/projects/) and wrote a UsbDevice class to
|
||||
help handle failures better. This stuff can be found in the source package above.
|
||||
|
||||
After wrangling with libusb on the Windows side of things, I decided to throw out
|
||||
that idea on the Linux client. It turns out that FTDI makes a driver for the UM245R
|
||||
called ftdi_sio which creates a virtual serial interface. I used this along with
|
||||
libserial and libstatgrab to get it working.
|
||||
|
||||
The Linux code is rather simple and only does CPU usage. I'm planning on extending
|
||||
it to do things such as music visualization. This of course means writing some sort
|
||||
of user interface and probably using threads.
|
||||
|
||||
### Pictures
|
||||
Some pictures of the final product:
|
||||
|
||||
 
|
||||
|
||||
 
|
||||
|
||||

|
||||
50
_pages/projects_ir_receiver.yaml
Normal file
50
_pages/projects_ir_receiver.yaml
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
---
|
||||
title: LIRC IR Receiver
|
||||
slug: ir-receiver
|
||||
url: /projects/ir-receiver/
|
||||
parent: Projects
|
||||
---
|
||||
Since my computer was used as a media hub for my two roommates and I my Sophmore
|
||||
year at UMR, I figured being able to use my A/V receiver's remote control to
|
||||
control the computer would be nice. After doing some quick research, (Win)LIRC
|
||||
seemed to be the best solution. Many people either buy a pre-made receiver, or
|
||||
build their own receiver that fits on the end of a serial cable.
|
||||
|
||||
### Parts List
|
||||
|
||||
* [A suitable IR receiver module](http://lirc.org/receivers.html) (Vishay 1738 is popular)
|
||||
* 1N4148 diode
|
||||
* 4.7 uF capacitor
|
||||
* 4.7 kOhm resistor
|
||||
* 7805 5V voltage regulator
|
||||
|
||||
### Construction
|
||||
|
||||
Construction is fairly easy. I personally used a Vishay TSOP2238 IR receiver
|
||||
module and a [instructions](http://lnx.manoweb.com/lirc/) found freely on the web. Below is the circuit diagram
|
||||
that I used. In the schematic, the - pin (GND) on the IR receiver goes to the serial
|
||||
GND, the +/Vs pin receives the +5V from the voltage regulator, and the Data pin is
|
||||
connected to the DCD on the serial port. Beware that many IR receivers have different
|
||||
pinouts! More details on what does what can be found at the [LIRC guide](http://lirc.org/receivers.html). Once the
|
||||
receiver is complete, the easiest way to position it is to connect it to a serial
|
||||
extension cable and mount it somewhere.
|
||||
Schematic:
|
||||
|
||||
### Usage
|
||||
|
||||
Since I primarily used Windows for day-to-day tasks back then, I used [WinLIRC](http://winlirc.sf.net/) to
|
||||
handle the receiver. It's configuration files are identical to LIRC. Pre-made
|
||||
configuration files are available for a [wide range of remotes](http://lirc.org/receivers.html), but your remote can be
|
||||
programmed manually if it needs to be.
|
||||
|
||||
My two main media players were [Winamp](http://winamp.com/) and [Media Player Classic](http://sourceforge.net/project/showfiles.php?group_id=82303&package_id=84358), which both have some
|
||||
sort of support for LIRC. Media Player Classic has it built-in (configuration in the
|
||||
Keys options), but Winamp requires a plugin. Luckily, there is one available on the
|
||||
[WinLIRC website](http://winlirc.sf.net/).
|
||||
|
||||
### Links
|
||||
|
||||
* [LIRC](http://lirc.org/)
|
||||
* [WinLIRC - A Windows port of LIRC](http://winlirc.sf.net/)
|
||||
* [List of known working IR modules](http://lirc.org/receivers.html)
|
||||
* [Nice construction instructions](http://lnx.manoweb.com/lirc/)
|
||||
Loading…
Add table
Add a link
Reference in a new issue