I recently completed building a fairly basic, custom water table for my son. While there were some definite challenges with the construction process, I wanted to post up my design and personal experiences with the process, in case others were looking to do the same. Please feel free to share your comments and thoughts here.

WP_20130416_008

My son loves sensory tables – and he can keep himself busy for quite a while with a water pan and a few water containers. And with the recent move to a home with a deck/yard, as well as the birth of our girls, we thought it was a good time to set him up with a water table on the deck – somewhere he could play with light supervision.

As we engaged in a ‘buy v build’ decision, we had the following goals:

  • The table should be engaging, providing a canvas for him to play with
  • The table should be flexible for evolving/changing over time (adding tubes/pipes/etc.) as we have time and as his interests expand
  • The table should support water, as well as other sensory experiences (e.g., sand, rice, pasta shapes, etc.)
  • The table should be able to survive the Pacific NW elements and survive a boy toddler, with a goal of lasting about ~10 years being left outside
  • The table should look good outdoors Smile

We then commenced poking around on the internet – checking Craigslist, Pinterest, and random blogs. After a couple weeks, it became clear that most options tended to cluster on the ends of the spectrum, with not a lot in the middle. On the commercial end, most tended to be cheap water tables that were pretty dedicated to a single purpose (and entirely plastic) to the high-end academic. On the DIY side, most of the custom tables were simple in nature, often comprised of a storage container and scrap wood nailed or screwed together. I then did a second round of research – I asked my son what he would want.

575749_10151829611917646_1144757007_nWhat my boy wanted was pretty simple – he wanted to pour water between boxes and watch it flow. Further, much of his play used small buckets and other pouring implements, so a place to set them while playing sounded like a good addition. There were also a number of other things that he definitely wanted that are on the ‘future considerations’ list (e.g., being able to launch a rocket out of the table), but I found it extremely helpful to hear more about what he wanted…and he really liked being asked.

And so, I sketched out a simple plan and talked it over with the stakeholders (my son and wife Smile). After a few tweaks and refinements, I arrived at the simple plan to the right…and my son and I made the trip to Home Depot to pick get the materials.

As I moved along with the plan, I decided to do something I didn’t see very often in the DIY plans, I decided to do an angled cut on the walls of the water table. I did this primarily for aesthetics, but I believe it likely has a strength advantage as well (although I can’t prove it). While it did add some complexity for a newbie woodworker, I’ve gotten a lot of complements on how it came out visually.

Materials

The table itself is built from a few under the bed storage containers and pressure treated wood.

The containers were selected because they provided an easy way to provide a water-proof container for storing/playing in water, as well as the bonus that they have covers. An additional bonus to the containers is the ‘commodity’ nature of them – I can have 2-3 different containers (one for water, one full of sand, one full of rice or pasta) and swap them out quickly and easily from the table…thereby simplifying storage of the sensory raw materials.

WP_20130406_007For the wood, I decided to use pressure treated wood because of its strength, my desire to leave the table outside, as well as how good it looks in a backyard of evergreens. Returning to the goals for the table, I need the table to last a number of years – for both my boy now, as well as our little girls when they’re ready. The wood is quite a bit more expensive than your standard wood, but it will stand up much better to the elements and toddler abuse.

I also used the table as an opportunity to freshen up my tools. In most cases, a refresh was sorely needed, but there were other tools that I simply didn’t have. Below is a short list of the tools I used for the project:

  • Workbench to secure wood while cutting
  • Circular saw capable of a 45 degree cut
  • Cordless drill/screw gun
  • Hand sander (with rough sand paper to help ‘trim’ support wood and shelves)
  • Square for measuring the wood

The Build

For the table, the build is the most straight-forward part…and doesn’t detailed coverage if you can understand the basic plan I sketched out above.

Time wise, building the table took me about 12 hours, but it should take most folks about 8 hours. For me, the time delay happened mostly because I only had 2-3 hours to work at a time, which meant that I had to spread the build over five days (with each day having 15-30 minutes of setup/cleanup time with each sitting). Also, I had to relearn some basic wood working points, so there was a lot of inefficiencies in my build.

WP_20130413_005The process of building out the table was pretty simple, working my way from the top to the bottom of the table. Each tier is basically four pieces of wood, with the ends cut at 45 degree angles. I screwed the wood together at these angles, two screws from each side, to provide a strong hold. The sizing of each box is based on what is meant to be contained inside of it – be it a storage container, a shelf, or another tier that it supports.

For me, I did a lot of ‘winging it’ as I built the table. I started by measuring my non-negotiable pieces (the storage bins) and built the boxes around them. Taking this approach was the chief reason why I had to start from the top. For the shelves, also provided space for wood to be used as a shelf next to the storage containers, providing my son with a place to set his water toys. As I laid it out, I spaced it so that he would have a 2”x4” worth of wood for a shelf at each level – actually using a 2”x4” at the upper levels, but using a 2”x8” for shelves that also provided support for higher tiers (the shelves that you see that run along the “middle” of the middle and bottom tiers).

WP_20130413_006I then added supports under the storage containers and then the legs. While it felt like the bins would be okay using the lip of the wood alone, the added weight of the water felt like it might introduce a lot of stress over time. For the legs, I originally planned on having the legs all the same length for the table, and having them attached at the bottom tier. This changed as I progressed through the build for two reasons: (1) the storage container supports meant I couldn’t go as high (as you can see in the picture below), and (2) I had the great idea of using the legs to tie the tiers together.

WP_20130413_002

WP_20130413_001As I started the design and build, the one element that continued to perplex me was how to secure the tiers together. When I first bought my supplies, I planned on using metal fasteners to secure them. What I ended up doing was actually a lot more clever (at least from my own biased perspective), I actually ended up letting the legs go up further into the higher tiers. As an example, you’ll notice that one of the legs is missing from the picture above – this ended up being secured to the top tier, per the picture to the right. For this leg, I actually screwed the top of the leg to one of the storage bin shelves…and then secured the middle tier to the leg along the sides. Which held pretty well.

To help bring things together, I also took advantage of the ‘toy shelves’. As I mentioned above, I used 2”x8” planks in the ‘middle’ of the bottom two tiers to extend under the wall of the higher tier (also a design change that occurred late in the build), allowing me to screw the higher tier to the shelf from below. Between the longer leg and the middle shelves, it held the table together pretty securely in a way I hadn’t been planning on when I did my original sketch.

Which brings me back to being flexible when doing something like this – while I had an idea in my head of how things would come together, seeing how the boxes placed and how things fit around them was very useful to me…I’d highly recommend anyone taking a similar journey also build out as they go along rather than trying to measure and cut everything, and then sit down to put it all together.

And the last step, of course, was to unleash quality assurance on the table. Needless to say, it passed QA testing. Smile

WP_20130416_004

Cautionary Points

There were a few items that caused me some issues along the way, and I thought it was worth highlighting them here. Many of the below are newbie mistakes, and feel free to ignore them. Smile

  • Do rough cuts at the lumber center
    (Driving 10’ lumber is a pain unless you have a pickup truck; and the Home Depot was happy to cut my lumber up)
  • For your rough cuts, give yourself 2-4” extra
    (you want flexibility in case things shift…and most of the cuts are angled cuts anyway)
  • Verify that the saw is at 45 degree angle
    (for me, I started with the saw at about 47 degrees, which caused me lots of confusion)
  • Start with the top tier and work down
    (I touched on this in the build out section above, but I would have had a lot of heartache if I started at the bottom and moved up)
  • Measure for the outside edge
    (Going back to my earlier point of starting with your non-negotiable measurements, I measured the inside portion of the box and cut for that…not realizing that the saw starts at the ‘outside’ of the 45 degree cut…meaning the inside cut was an inch or two off of where I thought it would be)
  • A good square is invaluable
    (one in a triangle shape is even better, as it allows you to check measurements for both inside the box – where your water table lives – and outside the box – where the saw will cut)
  • Starter holes for the screws really help (duh)

Next steps

So, that’s my home made water table. It’s a pretty nice table – basic, but nice. Over the coming summer, I plan on starting to add some bells and whistles to make it more engaging.

  • Water piping into the containers to allow for water to flow out
  • Elevated slide/pipe between levels, possibly with a water wheel
  • Siphon for even more fun
  • Potentially a pump that can go below the bottom tier, to pump water from the bottom level and into the top tier

New blog; new day

March 8, 2013

Over the past few years, I’ve had a few blogs (a couple personal ones, work ones, and then team blogs that I’ve contributed to).  Additionally, there’s been the various social networking sites. In this mix, content has been relegated to disconnected islands that are hard to connect and refer folks to.

To help with this, I recently set up a new blog with a WordPress provider, and I’ve been spending the past week gathering up content from the various islands into this one place. While I still have more cleanup to do, I’m also going to start working through my backlog of content that I have half-written and get this thing going.

Earlier this month, I spent a couple weeks in the Moscow area, talking with the Microsoft developer community about Windows Phone – presenting at TechEd Russia 2012 and stopping in to chat with the local Microsoft MVPs.

479765_10151524551747646_766467336_n

My TechEd Russia sessions were mostly remixed content delivered by the engineering team at the BUILD conference in October. At the heart, the core content is unchanged; most of my edits revolved around personal presentation style and incorporating developer feedback and reactions to content as it was presented.

Over the past month, I received a few requests for the decks that I used at the event, and so I’m posting them up here for broad consumption:

Thanks to those who attended the talks and took the time to ask questions and provide feedback on what the team shipped in the Windows Phone SDK.

I’m excited to announce that I’ve changed roles within Microsoft. For the past month, I’ve been a part of the .NET product marketing team as the senior product manager for Windows Workflow Foundation (WF).

What does that mean for this space? For this blog, it doesn’t really mean anything, to be honest. I will be blogging a lot more, but not here – I will be blogging to the team blog (which I will link once we’ve agreed on a blog name), I will be working with Ron Jacobs on some Channel9 shows, and posting in the forums more. So this will be more of a ‘hey – check this out’ roll, rather than a place for original WF content. There will still be occasional meaningful content, but it will probably be related to my weekend/side activities.

I’m very excited about the role – it allows me to actually talk about my work externally, since most of the content is not covered under NDA for .NET v3.x stuff, and the newer stuff as we move through the calendar year.

Parsing the WoW Armory

February 7, 2008

One of my side projects is working on a WoW Guild Roster. I’ve been doing a lot of work over the past couple months with Visual Studio 2008, although I’ve been stuck with ASP.NET v2 since DNN won’t be supporting v3.5 until DNN v5. One of the features that has me really excited within .NET v3.5 is LINQ.

So, while I was playing with LINQ, I decided ‘what would the code look like if I were to query WoW character data from the WoW Armory? So…I sat down and wrote a quick query of character information.

1 XDocument _charSheet; 2 3 System.Net.WebClient _wc = new System.Net.WebClient(); 4 _wc.QueryString.Add("r", this.Realm); 5 _wc.QueryString.Add("n", this.CharName); 6 _wc.Headers.Add("user-agent", "MSIE 7.0"); 7 System.Xml.XmlTextReader _reader = new System.Xml.XmlTextReader(_wc.OpenRead(ArmoryCharSheet)); 8 9 _charSheet = XDocument.Load(_reader); 10 IEnumerable<XElement> _charInfoEl = _charSheet.Root.Descendants("characterInfo"); 11 if (_charInfoEl.Count() < 1) { 12 MessageBox.Show("No descendants at <characterInfo>"); 13 } else if (_charInfoEl.Count() > 1) { 14 MessageBox.Show("Multiple descendants at <characterInfo>"); 15 } 16 17 var _charInfo = from item in _charInfoEl.Descendants("character") 18 select new { 19 Battlegroup = item.Attribute("battleGroup").Value, 20 CharURL = item.Attribute("charUrl").Value, 21 Class = item.Attribute("class").Value, 22 ClassID = item.Attribute("classId").Value, 23 Faction = item.Attribute("faction").Value, 24 FactionID = item.Attribute("factionId").Value, 25 Gender = item.Attribute("gender").Value, 26 GenderID = item.Attribute("genderId").Value, 27 GuildName = item.Attribute("guildName").Value, 28 GuildURL = item.Attribute("guildUrl").Value, 29 LastModifiedString = item.Attribute("lastModified").Value, 30 Level = item.Attribute("level").Value, 31 Name = item.Attribute("name").Value, 32 Prefix = item.Attribute("prefix").Value, 33 Race = item.Attribute("race").Value, 34 RaceID = item.Attribute("raceId").Value, 35 Realm = item.Attribute("realm").Value, 36 Suffix = item.Attribute("suffix").Value 37 }; 38 IEnumerable<XElement> _profsEl = _charInfoEl.Descendants("professions"); 39 var _profs = from item in _profsEl.Descendants("skill") 40 select new { 41 Key = item.Attribute("key").Value, 42 Name = item.Attribute("max").Value, 43 Max = item.Attribute("name").Value, 44 Value = item.Attribute("value").Value 45 }; 46 IEnumerable<XElement> _baseStatsEl = _charInfoEl.Descendants("baseStats"); 47 var _baseStats = from item in _baseStatsEl.Descendants() 48 select new { 49 Stat = item.Name.ToString(), 50 Base = item.Attribute("base").Value, 51 Effective = item.Attribute("effective").Value, 52 Element = item 53 }; 54

I was quite impressed by the brevity of the code needed to get this. I still want to go back and clean up the web request to use some of WCF’s new capabilities, but I think the LINQ aspects of the code really speaks for itself. The code that it currently takes in .NET v2 to crawl/navigate the XML files was much much larger.

I have returned from a couple weeks on the road. The month of October is turning out to be quite a busy one for me. As a result, I’ve been much more focused on all things work related, and have let a lot of my side projects slide – including my CodePlex project, leveling up my WoW character, and posting up here. Beyond work, the only thing that I’ve really done as of late has been playing a bit of Halo 3, which has been a lot of fun.

As an update to the weight loss, I finally got around to updating the Excel spreadsheet and generating a graphic for the blog. The chart has evolved a lot since my first posting a month ago or so – I’ve marked off when I got different foods back and general progress. I think it’s fascinating to look at how things have progressed over time, in particular how adding the 200 calories around week 13 started to slow things down, but then it started creeping down again.

2020-Phase-1

The last couple weeks I’ve been on the road, finally visiting family and then doing a user conference as a favor for one of my colleagues. I’ll be out again next week for a few days doing another user conference (but this time for one of my partners). I really have to say that being on the road runs havoc on routine. Although there was some lose over the last few weeks, I’m wondering if it was just from poor eating habits – and overestimating the numbers on what I was eating, which I tend to do. I am currently thinking about reversing that trend and potentially overeating, because at this point we’re concerned that I am getting too thin.

Another interesting thing that I see, with the chart, is that some of the weight loss corresponds mostly to when new foods are introduced, which makes sense. The reason it makes sense to me is that I become hyper-sensitive to what I’m eating when a new food is introduced. Partly, I think I do this to prevent the new food from being removed, but as well I do this as I’m looking for triggers that may cause additional issues (like increased hunger). And these past couple weeks have seen the introduction of dried fruits, which I’ve been using in trail mix…which I’ve been consuming in MASSIVE quantities due to being stuck in a plane, in a car, or in other situations. The side effect of the trail mix is that it is high in fat (due to the nuts), which then declined the amount of calories I was taking in.

Next week, when I’m on the road, I am thinking of trying to rely more on soy crisps, as opposed to trail mix…and hope that it helps reduce what happened this past month. I’m also going to try and let go a bit more. Odd to put it that way – not something you typically hear from someone trying to lose weight, I suppose. 😉

We went and did some more biking on the SVT this past weekend – much of the same trail as the weekend before.

We started at the same place, the Duvall trail-head, and biked a few miles past the 124th St traffic circle. Alas, we didn’t get down to the blackberry bushes this time – it would have been a few more miles, and we started late in the evening (we got caught in other household chores and got started much later than originally expected). But it was a fun time.

As part of the biking trip, we had to stop by the bike shop and pick up some new items – which includes a full-scale bike pump (the hand-pump only gets you so far), a tire repair kit, and a cheap speedometer. We used the bike pump right there at the trail, which it paid for itself in that one afternoon – IMHO, and I need to add the other two accessories to the bike this upcoming weekend as we prep for the hardwood installers to come and visit next week.

I will be hitting the trail again this weekend with Peter (and a few other coworkers). We’ll be starting a bit further down the trail this time – probably starting in Carnation, WA – and trying to see exactly how far down the trail we can get. My personal hope is to get down to the Snoqualmie Falls, if not the end of the trail, but we’ll see where we end up.

Rails to Trails

August 20, 2007

I went out for a bike ride this past weekend – we caught the Snoqualmie Valley Trail at the trail head in Duvall and then biked down a few miles to the south.

It was fun – although we had bought bikes last year, we kept coming up with excuses as to why not to go out on any given weekend. I had become enamored with the Sammamish River trail (it runs 10 miles, from Marymoor to Bothell), and had wanted to bike that, but a coworker had suggested another trail that he had walked a bit off – so he marked out the parking lot to meet at and we started biking.

The trail is about 20 miles long, and is a part of the Rails to Trails program. I believe we did about 8 miles of it, then went back. We’re going to try and pick it up again this weekend, this time a bit further south, and see how far we can go.

As you can see by the picture, the trail is a dirt and loose gravel. It runs through a lot of farmland, corn fields, and past some very tasty blackberry bushes. The bushes were out there in the sun, just soaking up the rays and storing it as up sweet juice that I was sure to not ignore – it would have been disrespectful to mother nature after all.

And, the best thing about the trip was it was an excellent way to get some exercise without having to go into the gym! Granted, it wasn’t the most strenuous of work outs, but I like to think that we made up in length what it lacked in intensity. But I’ll try and get some more pictures from this upcoming week’s bike ride. While I got a lot of the scenery, there aren’t any of me on my bright red bike!

Week 10 Progress

August 12, 2007

I passed the 16-week goal for the program this week, within week 11 of the program. And I’m in the process of tossing out (okay, donating…but tossing out sounds much more impressive) a LOT of old clothes.

I was looking in my meal tracker book and it’s fun looking at the numbers change on a weekly basis. So I thought I would put the numbers into Excel and do a quick chart.

image

 I am going to do the chart again as I finish up the program, and attach some dates onto the week numbers…I think dates are much more meaningful. In the end, I may make a photo book out of the whole experience. Which, of course, means that we probably need to start taking more pictures. But I will get some pictures of the clothes that are about to leave the house, because the size of the pile is quite impressive. I’m wondering if I should also get a picture of me in some of the old clothes before they go (many of them were purchased prior to my first weight loss effort a couple years ago – where I started at 260 and finished off around 220).

Looking at the chart, I marked off three lines – the baseline weight, the target weight that was set when I enrolled (we set a program target of 187, and my personal target was 190), and a new target weight (which we agreed upon last week as we crossed my personal target goal). At this point, everything is all gravy, as I weigh less now than I did in high school…which is pretty cool.

And there’s still a long way to go. When I finish up the 16 weeks of Phase I, I start a 12-week Phase II that focuses on maintenance and building/reinforcing the skills and information that has been learned in Phase I. But more on that in 6 weeks. 🙂

So I went for my first program sessions over the past week – all preliminary stuff:

  • Initial blood test
  • Initial counseling session
  • Initial fitness baseline

But this week the real work starts. This week I go to see the program doctor tomorrow, and then I have my first personal trainer and nutritionist visit on Weds. We talked about taking pictures on a weekly basis and putting them up on Flickr for family and friends, and that’s probably the route we’ll go – starting this week. It’ll be neat to see the progress over the next few months – the hope is to drop the last 40 pounds this summer.

They also set me up with a pedometer to keep tacked to my side and measure how much non-exercise activity I put out throughout the day – setting a baseline to ensure that this doesn’t decrease as exercise increases.

It’s amazing – I found a couple pictures from when we were back in Arizona, and it’s amazing to see how much weight I lost when we were in the Philadelphia area – I was quite the chubby monkey. I may need to post that up in Flickr as well. But it’s amazing to think how big you can be, but it just doesn’t feel like it at the time.