Skip to content
Browse files

All those sneaky miscommits!

1 parent 3a7d0bc commit 9474fd02ba7c9ac8c4965b314d47978cb90bf4a8 @danielmcgraw committed
View
6 _includes/post_header.html
@@ -1,6 +0,0 @@
-<h1>
- <a href="{{ page.url }}">{{ page.title }}</a>
-</h1>
-<div class="authoring">
- {{ page.date | date: "%B %e, %Y" }}
-</div>
View
6 _layouts/layout.html
@@ -3,14 +3,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta name="author" content="Daniel McGraw" />
+ <meta name="author" content="Your Name" />
<title>{{ page.title }}</title>
- <link rel="stylesheet" href="/css/styles.css" type="text/css" media="screen, projection" />
- <link rel="stylesheet" href="/css/syntax.css" type="text/css" />
</head>
<body>
<header>
- <h1><a href="/">Daniel McGraw</a></h1>
+ <h1><a href="/">Jekyll Base</a></h1>
</header>
<section>
{{ content }}
View
40 _posts/2010-02-25-Incremental-Rotating-Backups-With-Rsync.md
@@ -1,40 +0,0 @@
----
-layout: post
-title: Incremental Rotating Backups With Rsync
----
-
-I recently needed to come up with a quick and easy and hopefully elegant way to keep incremental rotating backups of the code I was working on.
-After a little research and testing I came up with the following bash script.
-The magic in this is taking advantage of rsync’s link-dest option. The link-dest option allows you to specify a folder to hard link. This means that when you rsync it only pulls the difference between the link-dest version and the latest version of the code. Thus you will only ever take up disk space equal to a copy of your code plus a weeks worth of changes instead of eight copies of your code.
-When you combine this with a simple rotating directory structure you have a pretty quick and easy incremental rotating backup solution.
-{% highlight bash %}
- #!/bin/bash
- # This script creates a week long rotating backup of the work
- # at the PATH for the USER on the HOST that you specify.
- # Can be run by hand, but would suggest creating a cron job.
-
- # Vars
- # Your user name on the remote machine (e.g. bob).
- USERNAME='username'
- # The remote machines hostname (e.g. www.yoursite.com).
- HOSTNAME='hostname'
- # The path to the folder you want to back up (e.g. /home/bob)
- DIRPATH='path'
-
- # Check to make sure the folders exist, if not creates them.
- /bin/mkdir -p backup.{0..7}
-
- # Delete the oldest backup folder.
- /bin/rm -rf backup.7
-
- # Shift all the backup folders up a day.
- for i in {7..1}
- do
- /bin/mv backup.$[${i}-1] backup.${i}
- done
-
- # Create the new backup hard linking with the previous backup.
- # This allows for the least amount of data possible to be
- # transfered while maintaining a complete backup.
- /usr/bin/rsync -a -e ssh -z --delete --link-dest=../backup.1 ${USERNAME}@${HOSTNAME}:${DIRPATH} backup.0/
-{% endhighlight %}
View
14 _posts/2010-06-03-One-Smart-Wordpress-Bot.md
@@ -1,14 +0,0 @@
----
-layout: post
-title: One Smart Wordpress Bot
----
-
-Most Wordpress bots are easy to spot. They promise cheap drugs, or wang enlargement, or spurt out gibberish and its evident that it isn't a real comment. You have to be pretty dense to not separate real post from these bots. There are other bots that offer some sort of nondescript advice or encouragement. These are a bit harder to spot, but still usually pretty easily spotted.
-
-I approved a bot's comment a few days ago. The bot's comment was super specific and on point and was generally a great comment on the post. So great in fact that it already existed, but from a different commenter. This bot had read another commenter's comment and then reposted it using a real email address and believable user name, but set the user's URL to a spam site.
-
-By no means do I like or condone spamming blogs, but i thought this was genius in a sense. More then likely what they did was scan for blog like any other bot would, but then they would utilize a screen scraper to pull down a blog post and copy the contents of the body of the post. From there it's the same as always, just posting a new comment, but substituting the body for the scraped one.
-
-This spam bot is simple, elegant, and not widely used. I'm willing to bet that the people that are using this kind of spam bot are getting tons of inbound links to their sites because no one is noticing these spam posts.
-
-Be aware next time you're filtering comments on your blog, there is now another kind of spam to filter out.
View
13 _posts/2010-06-30-Posterous-Is-Making-Moves.md
@@ -1,13 +0,0 @@
----
-layout: post
-title: Posterous Is Making Moves
----
-
-I just got through reading a couple post ([post1](http://brandontreb.tumblr.com/post/742889131/posterous-fail-tumblr-win), [post2](http://brandontreb.tumblr.com/post/754010381/posterous-is-at-it-again-are-they-just-trying-to-make)) by [brandontreb](http://brandontreb.tumblr.com) and I have to say I can't disagree more. I think Posterous is making some ballsy, yet positive moves. In the first post brandon outlines his thoughts on the ["harsh blog post"](http://blog.posterous.com/hey-tumblr-users-got-comments-want-video-grad) that Posterous posted to lure users away from Tumblr.
-
-This is just great marketing. Through careful word play they belittle Tumblr while building themselves up. They also discredit obvious features in the post, also again through careful word play, for instance "Email Posting The Works For Anyone". They never say that Tumblr doesn't have email posting, it does, they just say it doesn't "Work For Everyone". This is obviously an attempt to push their single address email posting system, where Tumblr generates a unique address for each blog.
-
-
-Towards the bottom of the this article they mention a tool they have created that helps you easily move all your content from Tumblr to Posterous. They also have one for TwitPic. A mention of this is linked to in Brandon's second post. It seems that Posterous is doing so well and stealing so many people from TwitPic they got all uppity and decided to try to take the litigious route to whats looking like no avail.
-
-I'm on Tumblr [myself](http://danielmcgraw.tumblr.com), but I think Posterous is killing it and other companies are starting to get scared. That is the sign of a quality product in my opinion. I eagerly await what happens next in this Posterous vs. The World debacle.
View
50 _posts/2010-07-03-An-Upsert-Example-In-PlpgSql.md
@@ -1,50 +0,0 @@
----
-layout: post
-title: An Upsert Example In plpgsql
----
-
-Postgres is a pretty good RDBMS. Its missing something though. Actually its missing a lot of things, but we're going to talk about upserts. No that's not a typo. An upsert is the intersection of an update and an insert. When used it will either update, if the record exists, or insert a new record. I think this should be built in, but sadly it is not. This can be fixed with plpgsql. Below is a simple plpgsql function I wrote. It takes a column name, numeric index (think numeric primary key), and the new data. In a loop it checks to see if we can update, if not then it inserts. You might be wondering what the loop is for. If so, good question. It loops because there is a possibility that the update will fail because there is no record yet and before the upsert's insert happens a matching record is inserted. This will cause the insert to error and if we ended here we would not get the proper data state. This is where the loop comes in. It allows the insert error and then goes back up to the update.
-
-This is not a solution to all upserts, but it is a good basis if you need to write your own. Check out the code below and please ask questions.
-
-{% highlight sql %}
-CREATE FUNCTION upsert_table(text, integer, boolean) RETURNS VOID AS $$
-DECLARE
- res INTEGER;
- col ALIAS FOR $1;
- num ALIAS FOR $2;
- dat ALIAS FOR $3;
-BEGIN
- LOOP
- -- First try to update.
- EXECUTE 'UPDATE table'
- || ' SET '
- || quote_ident(col)
- || ' = '
- || dat
- || ' WHERE index = '
- || num
- || ';';
- -- Check to see if the update affected any rows.
- GET DIAGNOSTICS res = ROW_COUNT;
- IF res = 1 THEN
- RETURN;
- END IF;
- -- Since its not there we try to insert the key
- -- Notice if we had a concurrent key insertion we would error
- BEGIN
- EXECUTE 'INSERT INTO table (index, '
- || quote_ident(col)
- || ') VALUES ('
- || num
- || ', '
- || dat
- || ');';
- RETURN;
- EXCEPTION WHEN unique_violation THEN
- -- Loop and try the update again
- END;
- END LOOP;
-END;
-$$ LANGUAGE 'plpgsql';
-{% endhighlight %}
View
118 _posts/2010-07-15-Apple-Refurbished-Web-Scraper.md
@@ -1,118 +0,0 @@
----
-layout: post
-title: Apple Refurbished Web Scraper
----
-
-I've been looking for a refurbished mac for development recently and found myself leaving the refurbished site window open in the background and constantly checking the page. What a waste of time. Solution: write a web scraper to do the work for me. Below is a super simple scraper I wrote up that looks at Apple's refurbished page and scrapes for search terms (e.g. Mac mini, iMac, etc.). If new computers are listed that match your criteria it will shoot off an email (using a gmail account) to you with the listings description, price, and product URL.
-
-{% highlight python %}
-"""
-Author: Daniel McGraw (@danielmcgraw, danielmcgraw.com, danielmcgraw.tumblr.com)
-Description: A scraper used to find refurbished Apple computers.
-"""
-
-import re
-import time
-import urllib
-import smtplib
-
-from email.mime.multipart import MIMEMultipart
-from email.mime.text import MIMEText
-
-from BeautifulSoup import BeautifulSoup
-
-class RefurbScraper(object):
-
- def __init__(self, fromAddr, fromPass, toAddr, productName, interval):
- self.fromAddr = fromAddr
- self.fromPass = fromPass
- self.toAddr = toAddr
- self.productName = productName
- self.interval = interval
- self.activeURLList = []
-
- def getSource(self, url):
- page = urllib.urlopen(url)
- source = page.read()
- return source
-
- def parseSource(self, source):
- soup = BeautifulSoup(source)
- products = soup.findAll(re.compile('^table'))
- productList = []
- for product in products:
- secondA = product.findAll(re.compile('^a'))[1]
- productURL = 'http://store.apple.com' + secondA.attrs[0][1]
- productName = secondA.contents[0].lstrip().rstrip()
- span = product.findAll(re.compile('^span'))[0]
- productPrice = span.contents[0]
- productList.append((productName, productPrice, productURL))
- return productList
-
- def filterList(self, productList):
- newProducts = []
- print self.activeURLList
- temp = self.activeURLList
- self.activeURLList = []
- str = re.compile('^Refurbished %s' % self.productName)
- products = filter(lambda product: re.match(str, product[0]), productList)
- for product in products:
- if product[2] not in temp:
- newProducts.append(product)
- self.activeURLList.append(product[2])
- print self.activeURLList
- print
- return newProducts
-
- def sendEmail(self, products):
- if products:
- msg = MIMEMultipart('alternative')
- msg['Subject'] = "Refurbished %s's" % self.productName
- msg['From'] = self.fromAddr
- msg['To'] = self.toAddr
-
- body = "Refurbished %s's:\n\n" % self.productName
- for product in products:
- body += "\t%s\n\t%s\n\t%s\n\n" % (product[0], product[1], product[2])
- body += "This has been an automated email from Daniel McGraw's Apple Referb Scraper.\n"
- body += "Follow him on twitter(@danielmcgraw), tumblr(danielmcgraw.tumblr.com), or his blog(danielmcgraw.com)."
- msg.attach(MIMEText(body, 'plain'))
-
- print msg
-
- # Use gmail to send email.
- smtp = smtplib.SMTP('smtp.gmail.com', 587)
- smtp.ehlo()
- smtp.starttls()
- smtp.ehlo()
- smtp.login(self.fromAddr[:-9], self.fromPass)
- smtp.sendmail('<Refurbished Mac Scraper>%s' % self.fromAddr, self.toAddr, msg.as_string())
- smtp.close()
-
- def loop(self):
- while True:
- source = self.getSource('http://store.apple.com/us/browse/home/specialdeals/mac')
- productList = self.parseSource(source)
- products = self.filterList(productList)
- self.sendEmail(products)
- time.sleep(float(self.interval))
-{% endhighlight %}
-
-Usage is simple. Copy the script above into a file named AppleRefurbScraper, or anything else you want for that matter, but that's the name I'll be using. Then from a prompt start up python.
-{% highlight python %}
->>> import AppleRefurbScraper
->>> scraper = AppleRefurbScraper.RefurbScraper('Gmail from address', 'Gmail from password', 'To address', 'search term', 'loop delay time in seconds')
->>> scraper.loop()
-{% endhighlight %}
-
-The search terms are case sensitive. The applicable search terms are:
- MacBook
- MacBook Air
- MacBook Pro
- Mac mini
- iMac
- Mac Pro
- Xserve
-Also note that I use regex to match the search term so feel free to use a regex string as the search term.
-
-If you like this project please subscribe to my <a href="http://danielmcgraw.com/feed/">feed</a>, and follow me on <a href="http://twitter.com/danielmcgraw">twitter</a> or <a href="http://danielmcgraw.tumblr.com/">tumblr</a> and say hi.
View
30 _posts/2010-10-06-How-To-Skin-Your-Minecraft-Character.md
@@ -1,30 +0,0 @@
----
-layout: post
-title: How To Skin Your Minecraft Character
----
-
-Skinning your minecraft character is super simple. All you need to do is create a 64px by 32px image and you're good to go!
-
-Ok I'm lying, but its almost that easy. Minecraft will look at the image you create and use certain parts for the separate surfaces of your character. Lets look at how the image is laid out.
-
-![Basic Skin Layout](/images/minecraftskintemplate.png)
-
-As you can see the layout is super simple. Lets also take a look at the basic skin for minecraft.
-
-![Basic Minecraft Skin x5](/images/char.png)
-
-This skin is blown up five times its original size so you don't have to squint. If we compare the layout with the base skin we can start to get an idea for how many pixels we have for each piece of the skin. The long, slender pieces such as the legs and arms are 4px by 12px, the large squares are 8px by 8px, the smaller are 4px by 4px. With that you should be able to extrapolate the other few odd sized pieces.
-
-Now on to creating the skin. Jump into your favorite editor and create a new image with dimensions of 64px by 32px. With your artist cap on count 8px over from the top left corner, this is where you're going to start drawing the top of your head. Continue on drawing like this using the skin layout image as a reference. Alternatively you can <a href="http://minecraft.net/img/char.png">download</a> the minecraft reference skin and modify it.
-
-Once you have a skin drawn up you're going to want to preview it. Notch has made this super easy for us to do. Login to your minecraft account at <a href="http://minecraft.net">www.minecraft.net</a>. Now click on preferences. You can see that you can upload your new skin and it will preview it for you. The skin displayed in the preview will be the skin loaded next time you play minecraft. Quick FYI, when in game hit F5. This will toggle third person mode so you can see your sweet new skin!
-
-Please post your skins in the comments. I'd love to see what everyone come up with.
-
-Update: A fellow Redditor created a tutorial on skinning your character using <a href="http://solidfiles.com/d/f1ee/">SkinEdit</a> with <a href="http://minecraft.decx.org/skinparts">SkinParts</a>. You can check that out <a href="http://minecraft.decx.org/log/how-to-use-parts-with-skinedit.html">here</a>.
-
-Update 2: It turns out that you can also skin hear gear with the same image. Below is the layout for those of you that also what to include head gear in your new skin.
-
-![Skin Layout With Head Gear](/images/minecraftskintemplatewithhat.png)
-
-Now who is going to be the first to create a Darth Vader skin with the helmet?
View
14 _posts/2010-11-17-Unboxed-A-Boxee-Box.md
@@ -1,14 +0,0 @@
----
-layout: post
-title: Unboxed A Boxee Box
----
-
-I arrived home last night to my favorite sight, a box left by UPS. FedEx and DHL boxes are equally awesome. This one happened to be filled with the new [Boxee Box](http://www.boxee.tv/).
-
-I've been looking for something besides cable TV to take up my viewing hours. After doing some research I had whittled my options down to either the [Boxee Box](http://www.boxee.tv/) or [Western Digital's TV Live Hub](http://www.wdc.com/en/products/products.asp?driveid=891). Both of these boxes are $199.99 and look pretty comparable feature-wise. The WD's selling point over the Boxee Box seems to be that it has a 1TB drive built in.
-
-So why did I buy the Boxee Box then? A couple of reasons. One, It can play all standard and a lot of non-standard file formats for video, image, and audio. Secondly, this is what really sold me, you can develop apps for it! They have [Python](http://developer.boxee.tv/Python_API) and [JavaScript](http://developer.boxee.tv/JavaScript_API) API's. Boxee is also an open source project built on [XBMC](http://wiki.xbmc.org/index.php?title=Main_Page).
-
-I'm excited to see how the Boxee matures, what it can do, and what people will come up with.
-
-
View
13 _posts/2010-11-25-Learning-Rails-The-Zombie-Way.md
@@ -1,13 +0,0 @@
----
-layout: post
-title: Learning Rails The Zombie Way
----
-
-[Envy Labs](http://envylabs.com/) just released [Rails for Zombies](http://railsforzombies.org/). This site is meant to help you learn Ruby on Rails in a fun, interactive way. On its own I find it to be a bit too high level. That is, with out other suplemental materials used in conjunction there isn't much context in the way of what Ruby on Rails is, how it works, and how to create a project of you own.
-
-That being said, I went through the Rails for Zombies lessons as I went through [Michael Hartl's Ruby on Rails Tutorial](http://railstutorial.org/). You can purchase it in several formats or read it for free by clicking the on the 'Book' link. After having been through eight or nine chapters of Michael's tutorial Rails For Zombies really helped solidify my understanding of the rails stack and introduced some concepts that I hadn't seen before, like how easy it is to render xml and json.
-
-If you're trying to learn Ruby on Rails I would strongly suggest both Michael Hartl's tutorial and Rails for Zombies, with Rails for Zombies used later on in the learning process.
-
-What are you experiences with learning Ruby on Rails? Have any suggestions of quality RoR learning materials, let me know?
-
View
12 ...ur-Digital-Contacts-Or-How-I-Reclaimed-My-Time-Reduced-Distractions-And-Reduced-Stress.md
@@ -1,12 +0,0 @@
----
-layout: post
-title: "Pruning Your Digital Contacts: Or How I Reduced Stress And Distractions And Reclaimed My Time"
----
-
-Last night I finally bit the bullet and deleted over 50 contacts from my phone, instant messaging, email accounts, and digital profiles. This is something that I started doing last year and have been trying to make a yearly habit of doing. By removing all my useless and unmaintained contacts I am removing a giant black hole that sucks up tons of my time, causes distraction, and is constantly getting in the way of important tasks.
-
-I would suggest you do the same for a the following reasons. **It is a very cathartic action**. Think of it as a digital spring cleaning. Out with the old and in with the new as it were. **It takes away the visual clutter that causes needless distraction in everyday life**. How many times have you gone to one of your digital profiles with a specific purpose in mind and ended up reading about things that people you havent talked to in years have done? The same happens when making phone calls, sending instant messages or emails. **It's also a great barometer for helping you determine the contacts you want/need to keep**. If you're on the fence about a contact, delete it. If the contact is important enough it will find its way back in to your address book. Lastly **it will help you build stronger relationships with the contacts that are left after the pruning and give you time to build and cultivate new ones**. You've just freed up a ton of time by getting rid of all those useless contact, how about you take some or even all of the time saved and put it back into your current relationships. Or use that time to go out and find and build new ones.
-
-Go ahead click that delete button. You will be surprised at just how many hours you can get back. How many relationships you can make stronger. How many new relationships you can make. If nothing else I'm sure you will pleased with having an environment that is a little less stressful.
-
-How has your life changed since you last did a digital contact pruning?
View
55 _posts/2010-12-10-Red-Bull-And-Beer-Diet-Day-1.md
@@ -1,55 +0,0 @@
----
-layout: post
-title: "Red Bull And Beer Diet: Day 1"
----
-
-Diet fads come and go nearly as fast as the days do so I decided to create my own.
-
-Introducing the Red Bull and Beer diet. I still need to come up with a catchy name for it. From friday until monday I will not eat any food. Instead I will subsist on only Red Bull and Beer. Throughout this journey I will share stats with you. Stats like the amount of drinks I've had, approximate calories consumed from said drinks and body statistics. My body statistics will be recorded by my [Withings](http://www.withings.com/) scale and shared with you here. I will also share with you the physical and mental changes I go through, if any.
-
-###Disclaimer###
-**I am not a physician or a physical trainer or anything remotely close to that. I do not condone anyone putting themselves through what I will be doing for the next 3 days and as such cannot be held responsible for the consequences of doing so. If you do choose to do something as foolish as this please consult a physician so (s)he can talk you out of doing something so stupid. Lastly I do not condone underage consumption of alcohol. Please dont drink if you are under age for your state/country. If you do drink please do so responsibly**
-
-So you are probably wondering why am am doing this and want an explanation besides 'because I though having an excuse to drink beer all weekend was rad'. Its a good question and one I will expand upon in time, but for right now I will say it has to do with how many ridiculous and dangerous dieting fads are out there today. It also has its origins in the recent explosion of articles and the subsequent [banning](http://www.nydailynews.com/ny_local/2010/12/10/2010-12-10_last_day_to_get_loko.html) of the caffeinated alcoholic beverage known as 4 Loko. Strangely almost everywhere you buy beer or liquor you can still by red bull. Sounds like the new media darling that is 4 Loko may be getting a worse reputation then it rightfully should dont you think?
-
-Lets go through a quick personal profile to help you understand my physical starting point. I am 6' 2" at around 175lb. My weight fluctuates around there normally. I consider myself a semi-active person. In a typical week I rock climb a couple times for two hours a session, ride my bike to work Monday through Friday and usually use it to get around the city (~15-20 miles/week) and take my dog for a couple good long walks. Other then that im pretty sedentary, such is the life of a programmer.
-
-Enough with the boring stuff lets see some stats!
-
-**Body Stats**
-(As reported by my Withings scale)
-Weight(lb): 175.6
-Height(feet/inches): 6'2" (This will obviously stay static.)
-Body Fat(lb): 31.3
-Lean Mass: 144.3
-BMI: 22.5
-
-**Diet Stats**
-(Drink and calorie stats will be updated through out the day)
-
-Red Bull: 2
-Beer: 5
- - 2 x PBR(can)
- - 1 x Alien Amber(pint - Calories estimated)
- - 2 x Stella Artois(pint)
-
-Approximate Calories: 2 x 153 + 2 x 135 + 1 x 150 + 2 x 110 = 946
-Calories counts for items taken from [livestrong.com](http://www.livestrong.com/) unless otherwise specified.
-
-**Log**
-9:00am A little hungry, but the red bull seems to be curing that.
-1:00pm Hungry again had a beer to fill stomach.
-2:00pm Starting to get tired from not having eaten time for another red bull.
-5:00pm Off work having a beer and relaxing after a crazy week. Not hungry, but slight stomach pains from not eating all day.
-6:00pm Bored. Realizing how much eating was a part of my day and subsequently social experience. Interesting.
-6:15pm Having a beer with my dad. Talking about the week and what to do with the weekend. Getting the social experience without the food.
-8:00pm Dinner with friends and family. Beer number 4. Super hungry. Senese seem heightened. The food looks amazing and smells even better. It's strange for me to want food so much and smell it so intensely.
-9:30pm Dropped off uptown for drinks with friends while we talk some business and then relax.
-10:00pm Drink over business.
-11:15pm Drink with friends. They mock me with the free snacks at the bar.
-12:20am Walking home from the bars. Hunger drives my brain. The alcohol and caffeine seem to have little to no effect on me over all. Helps curb the hunger, but the length that it curbs the hunger seems to be dropping off exponentially.
-1:00am Time for bed. Its been a long day.
-
-tl;dr: Im on a diet of only Red Bull and Beer and will be chronicling what happens and how I feel for the next 3 days.
-
-Continue on to [Day 2](http://danielmcgraw.com/2010/12/11/red-bull-and-beer-diet-day-2/).
View
45 _posts/2010-12-11-Red-Bull-And-Beer-Diet-Day-2.md
@@ -1,45 +0,0 @@
----
-layout: post
-title: "Red Bull And Beer Diet: Day 2"
----
-
-If you havent read [Day 1](http://danielmcgraw.com/2010/12/10/red-bull-and-beer-diet-day-1/) please do.
-
-###DISCLAIMER###
-**I am not a physician or a physical trainer or anything remotely close to that. I do not condone anyone putting themselves through what I will be doing for the next 3 days and as such cannot be held responsible for the consequences of doing so. If you do choose to do something as foolish as this please consult a physician so (s)he can talk you out of doing something so stupid. Lastly I do not condone underage consumption of alcohol. Please dont drink if you are under age for your state/country. If you do drink please do so responsibly.**
-
-**Body Stats**
-(As reported by my Withings scale)
-Weight(lb): 170.9
-Height(feet/inches): 6'2" (This will obviously stay static.)
-Body Fat(lb): 29.7
-Lean Mass: 141.2
-BMI: 21.9
-
-**Diet Stats**
-(Drink and calorie stats will be updated through out the day)
-
-Red Bull: 2
-Beer: 1
-- 1 x Guinness(can)
-- 2 x PBR(can)
-
-Approximate Calories: 2 x 110 + 1 x 155 + 2 x 153 = 681
-Calories counts for items taken from livestrong.com unless otherwise specified.
-
-**Log**
-8:30am Wake up well rested. Feel hungry, but no more then normal upon waking up.
-9:15am Starting to feel really hungry, but want to put off having anything to drink besides water until lunchtime.
-9:45am Took my morning weight reading. Im not sure how much is in error, but it looks as if I have lost a bit of lean mass and gained a bit of fat from yesterday. I took yesterdays reading in the evening which may be accounting for the differences. Will update this evening to make sure everything stays in sync and comparable.
-10:00am I figured out the discrepancy. Seems I recored my body stats from Thursday not Friday. Updated Day 1. This looks much better. Still will take reading this evening.
-12:00pm First Red Bull of the day.
-1:45pm Noticed that I think about eating when i'm bored. I didn't realize I ate so much to just fill time.
-2:15pm Getting really hungry. Feel slower and more tired then normal for a weekend afternoon.
-4:45pm Woke up from a nap. Super tired still and lazy think its Red Bull time to wake up.
-6:30pm Feeling woozy. I dont want to, but will be having a beer for calories to burn.
-6:45pm Weighed in again and updated body stats. This is the time that matches yesterday body stats.
-9:00pm My lack of energy has kept me from going out tonight.
-11:00pm Having a couple beers with friends while hot tubbing it up. A nice way to try and ignore the hunger.
-1:30am I dont know if it was the beers or the hot tub but i feel like a million bucks now. Bed soon.
-
-Continue on to [Day 3](http://danielmcgraw.com/2010/12/12/red-bull-and-beer-diet-day-3/).
View
40 _posts/2010-12-12-Red-Bull-And-Beer-Diet-Day-3.md
@@ -1,40 +0,0 @@
----
-layout: post
-title: "Red Bull And Beer Diet: Day 3"
----
-
-If you havent read [Day 1](http://danielmcgraw.com/2010/12/10/red-bull-and-beer-diet-day-1/) and [Day 2](http://danielmcgraw.com/2010/12/11/red-bull-and-beer-diet-day-2/) please do.
-
-###DISCLAIMER###
-**I am not a physician or a physical trainer or anything remotely close to that. I do not condone anyone putting themselves through what I will be doing for the next 3 days and as such cannot be held responsible for the consequences of doing so. If you do choose to do something as foolish as this please consult a physician so (s)he can talk you out of doing something so stupid. Lastly I do not condone underage consumption of alcohol. Please dont drink if you are under age for your state/country. If you do drink please do so responsibly.**
-
-**Body Stats**
-(As reported by my Withings scale)
-Weight(lb): 169.9
-Height(feet/inches): 6'2" (This will obviously stay static.)
-Body Fat(lb): 30.0
-Lean Mass: 139.9
-BMI: 21.8
-
-**Diet Stats**
-(Drink and calorie stats will be updated through out the day)
-
-Red Bull: 1
-Beer: 2
-- 2 x PBR(can)
-
-Approximate Calories: 1 x 110 + 2 x 153 = 416
-Calories counts for items taken from livestrong.com unless otherwise specified.
-
-**Log**
-9:30am Woke up and hunger crept up slowly.
-10:00am First weigh in of the day.
-10:15am First Red Bull of the day. Taking the dogs for a walk so the caffeine is very welcome.
-12:15pm Tried to run an play with the dogs, but was out of breath and energy after ten minutes. Just walking for me from there on out. They did enough running for the three of us.
-1:00pm Went to the grocery store to get ready for family coming into town. Strangely I wasn't too enticed by the food like i normally would be when hungry.
-2:45pm Really hungry for lunch. Craving pizza so badly.
-4:00pm Maybe its me knowing I only have eight hours to go, but i seem to be normally energetic, but still hungry.
-5:00pm Guess i spoke too soon. Getting sleepy and slow quickly.
-6:30pm Final weigh in and a PBR.
-8:00pm One last beer to hold me over for the night.
-11:00pm Bed time. Psyched to make it through this in one piece. Time to dream about the real meal i'll be having in the morning.
View
21 _posts/2010-12-16-Keeping-Notes-As-A-Developer.md
@@ -1,21 +0,0 @@
----
-layout: post
-title: Keeping Notes As A Developer
----
-
-## Did you ever stop to think, and forget to start again?
-## -[A. A. Milne](http://en.wikipedia.org/wiki/A._A._Milne) ##
-
-As a developer taking notes has been, by far, one of the most beneficial habits I've acquired. There have been so many occasions when having notes has saved my ass. Some times I'll needed to recall code or design decisions I had made and forgotten, or figure out accountability issues, or even just jot down a simple 'To Do' list for the day. Writing things like this down really helps. There is also a psychological side to it as well. When you think about and focusing on something hard enough to merit writing it down you are reenforcing those thoughts in your brain. Just by taking the notes you will find it easier to recall the things written in those notes.
-
-Through trial and error I have come up with the following system for taking notes while developing.
-
-I use very specific tools for my note taking. First, a [Moleskin soft cover extra large plain notebook](http://www.moleskineus.com/moleskine-soft-xl-plain.html). This book allows the most freedom while looking and feeling great. The blank pages are perfect for writing as well as sketching and the pocket in the back is great for holding 'napkin notes', cards, and miscellanea that you want/need while developing. Second, I use a set of [Sharpie pens](http://theconsumerlink.com/Sharpie/detail/TCL+1751690/128). They are permanent, don't bleed on or through the paper, and come in enough colors for convenience (we'll be coming to the use of the colors soon).
-
-Taking notes usually just means writing down what you want to remember in sequential order and reading it back later on for recollection or memorization in the same order. Taking notes in this manor isn't quite realistic as a developer because you rarely work on only one project at a time and even if you do only have one project its usually significantly large/complex enough to have to jump between pieces of the project. To combat this type of process while taking notes you can do 3 simple things. One, At the top of every page be sure to include the name of the project you are working on, the date, and the page number. Two, if you pick up again on a page draw a line to show separation of time and write the days date. Three, if your notes take up more then one page at the bottom of each page make note of the next page the notes pick up on. Remember there may be days or even months of separation in project notes.
-
-Lets talk about colors for a moment. Notes can be greatly enhanced with colors. I would suggest making each of the following its own colour; main notes, supplementary notes (small notes, second thoughts), code, strike throughs (marking things off lists, etc.), and references to other pages. While it does take a little more thought and time to write the notes while using the different colors I promise you that when you look back at your notes and you can tell what is what simply by the color you will be happy you took the time up front.
-
-I also keep special pages or sections in my note book. Usually towards the beginning of the notebook I keep a thoughts and ideas section. I strongly suggest you do the same. Its a scratch pad, dont hold back with your thoughts and ideas here. You can refine them and expand on them later on in the notebook.
-
-If you don't take notes while developing already I highly suggest you try. Let me know how it goes. If you already do, how do you do it? Is there any way I should tweak my system for better notes? I would love to hear thoughts and idea.
View
15 _posts/2010-12-30-2011-New-Year-Resolutions.md
@@ -1,15 +0,0 @@
----
-layout: post
-title: 2011 New Year Resolutions
----
-
-* Develop and maintain an exercise plan
-* Read at least one new book a month
-* Learn new, interesting beer recipe
-* Learn Ruby/Ruby on Rails
-* Make BodyTrack.me a reality
-* Start up The Hallo
-* Send a 5.12 and v6
-* Learn to and invest properly
-* Write more
-* Landscape yard
View
157 css/styles.css
@@ -1,157 +0,0 @@
-{
- margin: 0;
- padding: 0;
-}
-
-body {
- font-family: "Helvetica", "Arial", "Helvetica", sans-serif;
-}
-
-
-header {
- position: absolute;
- left: -400px;
- top: 350px;
- -webkit-transform:rotate(90deg);
- -moz-transform:rotate(90deg);
- -o-transform: rotate(90deg);
- z-index: -1;
-}
-
-
-header a {
- color: #DEF;
- font-size: 4em;
-}
-
-a {
- text-decoration: none;
-}
-
-.content {
- position: absolute;
- left: 115px;
- margin-left: 5px;
- width: 895px;
- margin-bottom: 50px;
-}
-
-.related {
- margin-top: 5px;
-}
-
-.related ul {
- margin: 0;
- padding: 0;
-}
-
-.related li {
- font-size: 18px;
- list-style: none;
- padding: 5px 0px;
- margin: 0;
- color: #777;
- border-bottom: 1px solid #eee;
-}
-
-.related li span {
- float: right;
-}
-
-.related a {
- color: #DDD;
- text-decoration: none;
-}
-
-.related a:hover {
- color: #F0B;
- text-decoration: underline;
-}
-
-#post {
- padding-bottom: 15px;
- border-bottom: 1px solid #eee;
-}
-
-#post h1 a {
- font-size: 1.5em;
- color: #ABC;
-}
-
-#post h3 {
- font-size: 1.2em;
- color: #CCC;
-}
-
-#post a {
- color: #BBB;
- text-decoration: none;
-}
-
-#post a:hover {
- color: #F0B;
-}
-
-#post ul {
- font-size: 14px;
- margin: 20px 20px 20px 0;
-}
-
-#post li {
- line-height: 1.4em;
- margin-bottom: 1em;
- color: #222;
- list-style-type: square;
-}
-
-#post li code {
- border: 1px solid #ccc;
-}
-
-#post p {
- font-size: 18px;
- margin-bottom: 1.2em;
- line-height: 1.7em;
-}
-
-#post img {
- display: block;
- margin-left: auto;
- margin-right: auto;
- max-width: 610px;
- -webkit-border-radius: 8px;
- -webkit-box-shadow: 0px 0px 10px #555;
-}
-
-#post .authoring {
- padding-left: 3px;
- font-size: 14px;
- color: #777;
-}
-
-#post .authoring a {
- color: #777;
- text-decoration: none;
- border-bottom: 1px solid #ccc;
- padding: 0;
-}
-
-#post .authoring a:hover {
- color: #555;
- border-color: #555;
-}
-
-#post blockquote {
- border-top: 1px solid #eee;
- border-bottom: 1px solid #eee;
- font-size: 14px;
- padding: 1em 3em;
- margin: 2em 6em;
- color: #444;
-}
-
-#post blockquote cite {
- text-align: right;
- color: #111;
- font-style: normal;
-}
View
86 css/syntax.css
@@ -1,86 +0,0 @@
-.highlight {
- margin: 0 2.5em;
- background-color: #333333;
- font-size: 12px;
- padding: 10px 5px;
- -webkit-border-radius: 10px;
- -moz-border-radius: 10px;
- overflow: hidden;
- text-shadow: none;
- color: #eee;
-}
-.hightlight code{
- float: left;
-}
-.highlight:hover {
- overflow: auto;
-}
-.highlight .hll { background-color: #333333 }
-.highlight .c { color: #008800; font-style: italic; background-color: #0f140f } /* Comment */
-.highlight .err { color: #ffffff } /* Error */
-.highlight .g { color: #ffffff } /* Generic */
-.highlight .k { color: #fb660a; font-weight: bold } /* Keyword */
-.highlight .l { color: #ffffff } /* Literal */
-.highlight .n { color: #ffffff } /* Name */
-.highlight .o { color: #ffffff } /* Operator */
-.highlight .x { color: #ffffff } /* Other */
-.highlight .p { color: #ffffff } /* Punctuation */
-.highlight .cm { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Multiline */
-.highlight .cp { color: #ff0007; font-weight: bold; font-style: italic; background-color: #0f140f } /* Comment.Preproc */
-.highlight .c1 { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Single */
-.highlight .cs { color: #008800; font-style: italic; background-color: #0f140f } /* Comment.Special */
-.highlight .gd { color: #ffffff } /* Generic.Deleted */
-.highlight .ge { color: #ffffff } /* Generic.Emph */
-.highlight .gr { color: #ffffff } /* Generic.Error */
-.highlight .gh { color: #ffffff; font-weight: bold } /* Generic.Heading */
-.highlight .gi { color: #ffffff } /* Generic.Inserted */
-.highlight .go { color: #444444; background-color: #222222 } /* Generic.Output */
-.highlight .gp { color: #ffffff } /* Generic.Prompt */
-.highlight .gs { color: #ffffff } /* Generic.Strong */
-.highlight .gu { color: #ffffff; font-weight: bold } /* Generic.Subheading */
-.highlight .gt { color: #ffffff } /* Generic.Traceback */
-.highlight .kc { color: #fb660a; font-weight: bold } /* Keyword.Constant */
-.highlight .kd { color: #fb660a; font-weight: bold } /* Keyword.Declaration */
-.highlight .kn { color: #fb660a; font-weight: bold } /* Keyword.Namespace */
-.highlight .kp { color: #fb660a } /* Keyword.Pseudo */
-.highlight .kr { color: #fb660a; font-weight: bold } /* Keyword.Reserved */
-.highlight .kt { color: #cdcaa9; font-weight: bold } /* Keyword.Type */
-.highlight .ld { color: #ffffff } /* Literal.Date */
-.highlight .m { color: #0086f7; font-weight: bold } /* Literal.Number */
-.highlight .s { color: #0086d2 } /* Literal.String */
-.highlight .na { color: #ff0086; font-weight: bold } /* Name.Attribute */
-.highlight .nb { color: #ffffff } /* Name.Builtin */
-.highlight .nc { color: #ffffff } /* Name.Class */
-.highlight .no { color: #0086d2 } /* Name.Constant */
-.highlight .nd { color: #ffffff } /* Name.Decorator */
-.highlight .ni { color: #ffffff } /* Name.Entity */
-.highlight .ne { color: #ffffff } /* Name.Exception */
-.highlight .nf { color: #ff0086; font-weight: bold } /* Name.Function */
-.highlight .nl { color: #ffffff } /* Name.Label */
-.highlight .nn { color: #ffffff } /* Name.Namespace */
-.highlight .nx { color: #ffffff } /* Name.Other */
-.highlight .py { color: #ffffff } /* Name.Property */
-.highlight .nt { color: #fb660a; font-weight: bold } /* Name.Tag */
-.highlight .nv { color: #fb660a } /* Name.Variable */
-.highlight .ow { color: #ffffff } /* Operator.Word */
-.highlight .w { color: #888888 } /* Text.Whitespace */
-.highlight .mf { color: #0086f7; font-weight: bold } /* Literal.Number.Float */
-.highlight .mh { color: #0086f7; font-weight: bold } /* Literal.Number.Hex */
-.highlight .mi { color: #0086f7; font-weight: bold } /* Literal.Number.Integer */
-.highlight .mo { color: #0086f7; font-weight: bold } /* Literal.Number.Oct */
-.highlight .sb { color: #0086d2 } /* Literal.String.Backtick */
-.highlight .sc { color: #0086d2 } /* Literal.String.Char */
-.highlight .sd { color: #0086d2 } /* Literal.String.Doc */
-.highlight .s2 { color: #0086d2 } /* Literal.String.Double */
-.highlight .se { color: #0086d2 } /* Literal.String.Escape */
-.highlight .sh { color: #0086d2 } /* Literal.String.Heredoc */
-.highlight .si { color: #0086d2 } /* Literal.String.Interpol */
-.highlight .sx { color: #0086d2 } /* Literal.String.Other */
-.highlight .sr { color: #0086d2 } /* Literal.String.Regex */
-.highlight .s1 { color: #0086d2 } /* Literal.String.Single */
-.highlight .ss { color: #0086d2 } /* Literal.String.Symbol */
-.highlight .bp { color: #ffffff } /* Name.Builtin.Pseudo */
-.highlight .vc { color: #fb660a } /* Name.Variable.Class */
-.highlight .vg { color: #fb660a } /* Name.Variable.Global */
-.highlight .vi { color: #fb660a } /* Name.Variable.Instance */
-.highlight .il { color: #0086f7; font-weight: bold } /* Literal.Number.Integer.Long */
View
2 index.html
@@ -1,6 +1,6 @@
---
layout: layout
-title: Daniel McGraw
+title: Jekyll Base
---
<div class="content">

0 comments on commit 9474fd0

Please sign in to comment.
Something went wrong with that request. Please try again.