move stuff around for Posty2, add base config

This commit is contained in:
Nick Pegg 2018-01-14 20:31:13 -08:00
parent 6ced08d443
commit 787f49f2fc
62 changed files with 9 additions and 1 deletions

10
pages/about.yaml Executable file
View 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
View 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.

View 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"

View 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:
![Final Product](/media/img/cpu_meter/1.jpg) ![Final Product](/media/img/cpu_meter/2.jpg)
![Final Product](/media/img/cpu_meter/3.jpg) ![Final Product](/media/img/cpu_meter/4.jpg)
![Final Product](/media/img/cpu_meter/5.jpg)

View 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/)