Jeffkillian.com initially started as a Geocities website when I was in 6th grade. Over the years, it has slowly evolved into a place where I can practice and become familiar with web development as it progresses. I started out coding with Microsoft Frontpage, then moved to Dreamweaver. Initially, there was very little coding, and it was all WYSIWYG. However, as I learned more, I could make it more interactive.


I incorporate drawings and blog posts to keep those that are interested updated. Through the evolution of the website, I was forced to learn HTML, PHP, CSS, XML, jQuery, javascript, and the handling of MySQL Databases. I've put online some code samples.
CLOSE
Subject:
Message:

SUBMIT
Spacewalk

NASA is streaming live a spacewalk, which is just about one of the coolest technological sentences I think I can come up with. 

http://www.nasa.gov/multimedia/nasatv/index.html

How I Use Coding to My Advantage
The idea for this post came when I was watching this show about a guy who memorized the pattern on a game, and was able to bring in 100,000+ on this game show.

One thing I like about computers is that everybody thinks they are magical, and that they just do things that you will never be able to understand. The part I like is trying to understand what's underneath. Once you understand what's at the source, you can come up with some interesting results.

I've used this in several instances in my life, mostly to gain an advantage (or save $250, as is the case in example 2):

1. There was a Facebook racing game where you could challenge players to races.  You would record a run, and then use it to challenge people. If you won, you got game money. If you didn't nothing happened. The best way to win was simply to play as much as possible. However, it only allowed you to challenge up to 5 people at once. I realized that the url after you challenged looked like :"?user=user1,user5,user18,user9,user3". I wrote a small python program to print out the text "user1,user2,user3,...user999,user1000", and inserted that into the url. It worked, and I was able to challenge 1000 users at once.

  2. Bonobos.com was having an easter sale, where you could find surprise images that were supposed to pop up randomly, and then get a certain percent off. There were coupons for 10,20,and 30% off. There were also a select number of coupons for 50% off. I found one of the coupons for 10% off, and, with a web dev background, decided to increment the number at the end of the image by 1 to see what happens. I ended up finding the coupon code for the coupon directly better than that. All in all, I ended up with the 50% off coupon without having to search at all.

3. I ran a half marathon, and the pictures that they gave you to preview were really cruddy. Furthermore, I couldn't find any pictures of myself. I decided to try to search the "unclaimed runners" bin hoping to find pictures of me that they hadn't tagged with my bib number. You were only able to search about 5 pictures on a page at a time, and the pictures were really small. I made a script to print out large, clear versions of hundreds of pictures at the same time. It made it a lot easier to find any pictures that might have me running.

Happy Easter
I'll be updating soon as a lot has been going on.
Drawing and House of Cards

I hadn't drawn in a while, and scribbled this down while watching House of Cards.

The Story of Our Ballpit

I can't remember how it came up, but sometime in October I, once again, stumbled upon this XKCD comic, and had a realization. I was grown, had a source of income, and could do what I want (within reason). A ballpit was within reason. Because I have two roommates, I had to okay this with them, and with a little bit of convincing (including a formal powerpoint presentation), we were in business.

The first step, as is the case with any problem, is to look to the internet to see if somebody else in the world has gone through what I was about to do. Turns out, there's a bit of documentation on building a ballpit, but not that much. I thought I'd document mine in some detail here, in case anybody else needed some help/suggestions.

The first order of business was figuring out the size that we wanted the ballpit to be. I threw up a quick sketch in a notebook, outlining possible sizes and where it might fit in the house. We were going to be eventually buying PVC pipe lengths of 10 feet, so ideally we would have to buy the minimal amount of 10 foot pipes that would fit our required length of pipe needed. We orignally made the plans 6.5x4x3 feet, but thought 5.5 x 4.5 would work better because then we could make one cut on each 10' PVC tube and would have two pieces. Our final dimensions ended up being 4.5x5.5x2.5. I also spoke to somebody I found on reddit who had also made a ballpit, and they had some helpful advice (buy more balls than you need).

I created a spreadsheet to figure out the best PVC pipe size for our project (1") that would stay within our price range ($300-$400). The spreadsheet mapped out how many corners/t-fittings we needed, and how much we could get them for, and added them up in a nice table. It was also used to keep track of where we could get ballpit balls.

Materials:
8 10' foot long, 1" inside Diameter PVC Pipes.
8 3-Way Side Elbow Outlet Corner Furniture Joints
12 T-Joints
2 4-Way Cross Joints
1 Tarp
Zip ties
A lot of ballpit balls
We also bought some PVC Cement/Primer, but ended up not using it. s

Off to home depot!


Strolled into home depot, ask for PVC pipe for a ballpit. No smiling.

They were super helpful, and mentioned that they'd cut it for free if we brought it back and marked where we wanted it cut. On my initial planning, I had drawn a 3D version of the pit, and had associated a number with every unique piece that would exist once everything was cut. We took it home and measured out those pieces on the PVC, ensuring we had enough. We tried to be as precise as we could, but the PVC given wasn't always 10 feet. That didn't end up being much of a problem.. Once we had the marks where we wanted the cut, we took it back to home depot, and the guy cut them by hand with some PVC cutters. He was not happy about it, but they had promised. He was not a happy camper, and I don't think he liked cutting our PVC very much. I couldn't blame him. We asked if we could do it, but he said we weren't allowed. Then he cut himself, which allows us to say actual blood and sweat went into the creation.

While at home depot, we also got the 12 T-Joints used to stabilize the ballpit, and the two 4-Way cross joints. The hardest part about this project was finding the 8 corner joints. I eventually found them here, and they were dirt cheap. The site was great and they shipped super fast- I'd highly recommend them. I had previously called about 11 plumbing and irrigation companies, hoping to find anybody who sells them locally. It turns out these are not generally used ever by any pool or water services-they are mainly for creating PVC furniture. I would not try to find them locally. Just have them shipped.

At this point in the design, we hadn't decided what material the exterior of the ballpit would be. We asked around, and found out that tyvek (the stuff you see on the outside of houses while they are under construction) might be good. He showed us a roll, and it was great. The only problem was that it came in huge (expensive) rolls, and we only needed a little bit. We thought about asking some construction companies around us, but decided to go with a tarp instead (which we are quite happy with). Another option we were debating for the outer material was cheap fabric from a fabric store. It would only cost about $10 for all we needed (assuming we got the clearance fabric-it didn't matter what was on it), but we figured it might rip, and we had a hard time thinking of a good way to fasten it. We also considered tenax, but decided that it might rip and wouldn't be as sturdy. The tarp worked well in that it came with eyelets which we could tie down with zip ties.

We needed balls. Lots of balls. I used the ballpit ball calculator, and came out with a rough estimate. However, I wasn't exactly sure how many I'd need because the balls we were buying were said to be smaller than advertised. After looking for a while online, Toys-R-Us had the cheapest balls. Not only that, but their shipping was free, which would have cost something on the order of $200 or so if we had ordered our balls from Amazon. We ended up getting 12 or so of the Sizzlin Cool Play Balls (250 pack), which were on sale for $22 or so each. We also, by the end of the project, had managed to scrape an additional 750 balls off of craigslist, for a total of around 3,750 balls. You'd be surprised how small of a space that covers. If you're building your own, I'd suggest buying more than you imagine, though it really depends on the ball diameter. The quality of the Toys-R-Us balls is great. My general rule was that I was trying to buy balls that were less than 10 cents a ball. We didn't need super indestructible balls so there was no need to spend 15 cents per ball when we're buying thousands of them. Plus, the Toys-R-Us balls stand up to our beating. If you stand on one, it might pop, but in general you're distributing your weight across a lot of balls, so they never get close to denting or popping.

We started the assembly, and realized (with some help from my mom), that the PVC/fittings might join snug enough that we don't even need the cement/primer (which turned out to be the case). As long as you push them together pretty hard, they'll stay. Here's a view of the (longer) sides partially constructed. Below you can get a clue as to how we put the structure together.


The longer sides had crosses in the middle for stability, and the shorter sides had a pipe going across
the middle for some more stability.


View of the longer side. You can see the sketchbook we used to plot it out.


Another (fuzzy) view.

Keep in mind if you’re building your own that the connector fittings add about ½ inch or so. We luckily caught an issue before we had to cut where some sides had more connectors than their counterparts, which caused the sides to be of unequal lengths. (You can see in the images above that there are four connectors on some vertical bars, and three on others.)

After Pushing the PVC pipe together, we had to wait for the shipment of balls to come. About two days later, this was on my doorstep:


"Only house in the suburb without kids" or "Only house in the suburb with just kids" ?


View from inside the house

 


Since the neighbors were probably getting suspicious, I brought them inside and unpacked them:

 

.
Balls to the wall

Of course I happened to be the only one home and couldn’t share my joy with anyone. I got a tarp I had lying around and threw it on the structure. One thing I didn’t account for at first was putting the tarp on the inside of the PVC as opposed to the outside allows the ball height to get much higher. It’s also important to get the right tightness on the tarp. Too tight, and you risk ripping/the tarp not laying flat on the ground. Too loose, and the tarp will bulge out through the pvc with balls, making the overall ball level much lower. There’s a fine line, and it took a while to get the tarp in the correct position/layout, but it’s worth the bit of extra trouble.

 


The initial tarp job, on the outside of the PVC

Once I put the balls in though, they spread out too much. I undid all the zip ties, lifted the frame up, and pushed all the tarp edges into the inside of the PVC, fastening them again.


Next project: Better lighting for this room.

We didn’t want to use that tarp in the end, however, and went to Amazon and ordered a better, higher quality one (12' x 16' Heavy Duty Treated Dry Top Tarp). With the correct tarp finally attached, our journey was complete.

 

It can hold three grown adults sitting up, and the balls come pretty high. Because we didn’t glue it together, when we move it’ll be a simple deconstruct. The longest piece we have is 5.5 feet, so it can fit in the back of a car with ease. The hardest part will be fitting all the balls somewhere, as they are quite difficult to move all at once. (Sidenote: great prank- dump them through a sunroof). Right now, we just have a pillow and a couple of blankets in it. We're looking to get some more pillows/inflatable pool toys, and a mini basketball hoop in the corner so we can practice. We've also instated a rule where anybody who gets in the ballpit gets to choose a ball and write whatever they want on the ball with a sharpie, and then toss it back in. I'd definitely suggest something like that if you're thinking of making your own. Shoot me an email if you've got any questions about the process, I'd be happy to help. It was a great investment, and we have no regrets.

Things you realize when you have a ballpit:
1. Sippy cups for interball-pit consumption. You can't risk spillage.
2. Balls. Get. Everywhere.
3. A fluffy comforter in the ballpit is a nappers best friend.
4. 4,000 ballpit balls is really not that many balls.
5. Plumbers wake up early. If you need to talk to one (say, about PVC pipe fittings), they will call back at 6:00am.
6. Called a Chuck-E-Cheese inquiring about ballpits. They said they phased out all ballpits in all eating/playing establishments after an aids or heroin infected needle was found in one.
7. That was just an urban legend. Which doesn't explain why they're no longer installed (though sanitary issues with toddler poop/vomit might)
8. Craigslist, though sketchy, had some pretty good deals on balls. Be patient for them. And wash them. Twice.
9. Nobody has ever said "I wish we didn't have this damn ballpit"

More pictures:


Can't get much more kiddish at this point.


Sippy cups.


Ben showing off his ball.


The ballpit's static abilities.


You're never too old to get in a ballpit.


Three grown men and their ballpit

Two Trains Puzzle

I stumbled onto a puzzle today, and thought it was interesting enough to share: 

Two trains are on the same track a distance of 100 km apart heading towards one another, each at a speed of 50 km/h. A fly starting out at the front of one train, flies towards the other at a speed of 75 km/h. Upon reaching the other train, the fly turns around and continues towards the first train. How many kilometers does the fly travel before getting squashed in the collision of the two trains?

What I found interesting about the puzzle is that the solution is a lot easier than it seems. At first it seems like you'll sum the distance the fly is travelling over and over, as described here.  The shortcut solution is to realize that the trains are going to take exactly an hour to get to each other. Because the fly is going 75km an hour, it will go exactly 75km in that hour, regardless of the direction.. It was a good reminder to think out of the box a bit.
Forcing Non-Normal Data Visually into a Normally Distributed Bar Chart

A friend recently came to me asking if I had any idea how to do a statistics related request, and I figured I’d detail it here.  He gave me about 4000, non-normally distributed data points in the range of 0-1000.  My task was to make a bar graph with 5 bars, each corresponding to a different interval (don’t have to be the same length) between 0-1000.  The intervals were mutually exclusive, and were to be decided so that, when you graph them from least to greatest, they appear normal.

I had to turn this data:




into this:


"Just make the graph look pretty” they said.

My first approach was to do it visually. I knew that we wanted 68% of the data to be within one standard deviation, so I just made the middle bar try to have 68% of the data. I made the outside bars have 5% each, and the 2nd and 4th each had 11%.

I used excel to guess and check, making a sheet that listed the goal count I was aiming for in each bar (calculated based on percentage of the 4000 points), and how many were currently in that column. I then started from the lowest level, trying to get 5% of the total points into that. Because the top of the first interval is the bottom of the second, I then had to adjust the top of the second interval to try to match the 11%, and so on.  This worked somewhat well. I got a graph that looked like this:


However, the overall counts were way off of what I had wanted. I was 2477 data points off of ideal (bar 3 was too low, and bars 2 and 4 were too high).  5 Bars was not going to cut it simply because of the way that the data was distributed.

I asked and was told that 7 bars might also work. Onward.

Instead of guessing the z scores and percent that should be contained in each, I sat down and calculated how much should be in each bar if they were perfectly normally distributed (within reason, I didn’t have the population SD or mean).  They also mentioned that they really wanted the middle-most bar to be as close to true as possible. For that reason, I decided to start with that interval rather than the leftmost.

It was at this point I realized this was a dynamic programming problem, and I was just trying to find the best combination of intervals that minimized the difference between the ideal normal curve and the obtained “curve”. We had done this in my Algorithms class, but it wasn’t of this level, and I wasn’t ready to go back and look into that if all that they wanted was to “make the graph look pretty”. Not yet.  

But just for kicks, I called my friend at Google and he agreed that creating a programming solution would be more time than it’s worth for creating a “pretty graph”.

The first step then was to figure out what the interval for the middle data interval should be.  I created an excel table mapping every interval (rounded to 5 for the sake of excel columns getting way out of hand).

Each cell in the image corresponds to an interval, with the bottom(start) of the interval as the row , and the top of the interval as the column. In the image, the highlighted number indicates that an interval between 30 (inclusive) and 75(exclusive) would have 331 entries in it.   I had calculated that I knew my target middle interval would be within the light orange square.
Through a process of guess and check, I found the ideal interval for the middle column.  I then expanded on either side, changing the interval sizes so that they best approximated a normal curve.

I ended up with this:

Of the 4066 data points, I had a cumulative error of 157, meaning the intervals were larger than or smaller than the ideal columns by a sum-total of 157. That’s around 4%, which qualified as “pretty” in their book.

It was a good way to learn about excel, and I ended up having to write (aka copy from internet) some functions to make it easier.
How a Manual Transmission Works

This is a great explanation of how a manual transmission works. The more you know.
 

Site Transfer Complete and Other Ramblings
I've been meaning to transfer over this website to my own server and host for a while, but I've never really had the energy to follow through. I've spent a lot of time getting it working on the old one, and figured that if I did it, there would be differences in the hosting services that would make the transfer a hassle. I ended up going with Dreamhost, and it went extremely smoothly. I now have full control over the site.
Though I moved in a while back, I still find it hard to completely settle in. Just yesterday we set up the intrahouse mail system, which was a huge improvement over the previous set up. All of my financial accounts are set up too, and I'm hoping to start investing a bit more at some point.
I did a tough mudder last weekend, which was a lot of fun. It’s a 12 mile obstacle course, featuring obstacles like barbed wire, giant walls, and electric shocks. It was 2 hours away, but I drove up with 3 friends and met some others there. One of my friends brought his camera and was able to get some pretty good pictures, which were pretty fun to reflect on later. There weren't any problems during the run, except for a couple irritating rocks in my shoes.

There's a youtube channel, numberphile, that has some neat videos about math and elements of mathematics that you'd never really think about. It's pretty low in terms of required knowledge, and they produce videos regularly. They have a sister channel about all of the Messier elements. I usually fall asleep watching it, but it's interesting nonetheless.
On the subject of math, the ABC conjecture has been in the news, because somebody has claimed to solve it. Wikipedia defines it simply as:
three positive integers, a, b and c (whence comes the name), which have no common factor and satisfy a + b = c. If d denotes the product of the distinct prime factors of abc, the conjecture essentially states that d is rarely much smaller than c.

This has important implications for encryption, which is based on the fact that large prime numbers are hard to find. There's a pretty good video explanation here.
My main computer, a laptop, has speakers, but they aren't very loud. I find myself getting up from my computer, and not being able to hear the music if I'm in the next room over or in my closet. I found a couple solutions. One involved an app which, using wifi, sent the sound out from my computer to my android phone speaker. I then used an aux cable to hook the phone up to a bigger speaker. The biggest problem with this was stuttering and latency. Although it was the cheapest option, I did some research on portable speakers and ended up spending some money on the Creative D100, which in the end was the better option. It runs on 4 AAs, has great sound, and was easy to set up and use. It syncs with my computer via bluetooth, and I can walk around the house with it and the range has never been an issue. It also has power chord in case I want to keep it stationary. Also, it has an auxiliary input in case I want to run it from an ipod or other device.
Hairodactyl
Want more? Check the blog archives
Untitled Document