Make a simple cross-cutting sled

January 30th, 2009


One of the most simple and useful things I have made in my shop so far is this crosscutting jig. It is perfect for when your chop saw just doesn’t reach far enough to cut a big piece of wood. Also, I have much nicer blades for my table saw then I do for my chop saw. Either way, it is a quintessential jig to have in your shop.


I made this one with some scrap wood I had lying around the shop in a matter of an hour or so. The base is made from birch veneered plywood and the rails are made from oak. I bought the T-tracks to guide the sled from Rockler, my new favorite store. Other than that, there’s not much to it. I decided to use dowels to hold it all together but screws or any other type of joinery would work just as well.


The most important part is getting it square obviously. What I did was made the base perfectly square, measured the distance between the tracks on my saw, then attached the tracks to the sled. Then I clamped the jig the saw, turned on the blade and raised it up through the wood. Now with my T-square I am able to line up the pieces that hold the wood perpendicular to the blade. Thats all there is to it. This design is very simple and straightforward but if you browse around the web you will find all sort of different designs, additions, and safety additions.


(More pictures can be found in this Flickr set)

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

Hacking Apple TV, quickly and easily

January 23rd, 2009


For years I have been trying to create a Media Center to attach my TV. I’ve tried Windows Media Center years ago, Myth TV on Linux, and everything in between. Nothing was simple, cheap, and easy to setup. I have friends who have tried those off the shelf media boxes like the ones from Netgear and the likes, but those have their pitfalls too. I wanted something open source, truly hackable, and preferably something Unix/Linux based. Thats why I turned to the Apple TV.


For my use case, I did not care about disk storage. I am using my Apple TV’s as terminals or endpoints to play media from storage somewhere else on the network. This allowed me to buy the cheap version of the Apple TV with a 40 GB drive for about $220. Not only that, there is a Toslink (optical) out that I will be attaching to a DAC and set of vintage tubes for crisp beautiful sound. For that kinda money, its pretty hard to beat the Apple TV.


Once in my possession, I immediately hacked it to expand its functionality. Without it, the Apple TV is actually pretty restricted and an overall weak product; however, Boxee helps make it all better. Boxee allows you to watch all those formats that iTunes does not support, like DivX, etc. Not only that, it allows you watch Hulu as well as other online video services.

Hacking your Apple TV and Installing Boxee

There’s actually nothing to do really and I would barely consider it hacking. A few folks out there have made it quite easy. In a nutshell, all you need to do is create a ‘patchstick’ on your PC using a thumb drive you have laying around. You insert it into your Apple TV’s USB drive, restart it, and voila! It installs itself and you’re all set. You can get the USB Patch Stick creator from the Google code repository.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

Repairing old sash-weight windows

January 11th, 2009

If you’re house is even half as old as mine is, its likely that you have similar sash and weight style windows. You know, the ones that are cold, drafty and often times have snapped ropes? Luckily, they are pretty simple to work on for the average do-it-yourselfer. Eventually I am going to replace the weights with spring balances and insulate but for now they just needed to be done. Another person helps but this definitely could be done on your own. These windows usually arent too heavy. There is plenty of information and how-to’s out there on YouTube and and This Old House’s web site.


In my case, I needed to duplicate some weight pocket doors because I was missing a set. This unfortunately is a little more advanced but anyone with some table saw skills can make these. All you need is a miter and some scrap wood. More pictures and descriptions can be found on my flikr page.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

Make your own chandelier

November 22nd, 2008

When my housemate and I moved into our new place we weren’t thrilled with the victorian-style knockoff chandelier that was in our living room. Our friend recommended we paint it and see if we still wanted to throw it out. So, I took the idea and ran with it. Needless to say, it’s definitely not getting thrown out any time soon. Here is a picture of the finished product.



This was a pretty simple project and started out with a beat up old chandelier. I took it down and cleaned it off as best I could with soap and water. Then I sprayed it with some white primer before hitting it with two coats of high gloss orange. That was the easy part and didnt take too long.


Next I had to track down some small lamp shade covers. I came across a nice set of 8 at lampsplus.com. First thing I did when I got them was template. This was crucial in cutting out 5 copies from the fabric. I simply wrapped a big enough piece of paper around the lamp shade and taped it. Then I trimmed up all the excess and unwrapped it. Voila template.



(click the image to see it larger)


After all of the fabric was cut out it was time to warm up the glue gun. Make sure to try and line up the fabric seam with the seam thats already on the lamp shade. First I glued one side down where I wanted it, then I would take out all the slack and wrinkles and fold the over the other side. Dont worry about making this perfect. Once you fold over the top and button around the lamp shade rim you can deal with the rest of the slack.



(click the image to see it larger)


And thats it! There’s not much to it and it didnt take long. I was able to save an old chandelier from the dump and go something completely original in return. There are more pictures up on Flickr including one of the completed room.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

Can you see the concurrency flaw?

November 3rd, 2008

A coworker and I came across this block of code which was causing us numerous headaches over the past few weeks. For a while, there was absolutely no time delay which was causing an inordinate amount of CPU cycles but thats besides the point. After that was fixed with a short delay we were left with what you see below. Can you tell what’s wrong?


   while ( true ) {
        TriggeredSend ts = queue.peek();
        if ( ts != null ) {
            switch( doPost( ts ) ) {
                case SUCCESS:
                    queue.take();
                    ts.complete( true );
                    break;
                case FAILURE:
                    queue.take();
                    ts.complete( false );
                    break;
                case SYSTEM_UNAVAILABLE:
                    systemIsAvailable = false;
                    break;
            }
        }
        Thread.sleep( delay );
   }


As with most concurrency bugs, its hard to determine what’s actually happening without experience. You can turn on your debugger but then you are changing the way the code behaves by slowing it down, essentially taking out any race conditions. Turns out, the same task was getting invoked multiple times well as some other strange conditions. That led us to the block of code you see above.


Figure it out yet? Well, what’s happening is that when the code is peeking into the queue, its assigning the result to a variable which is then being called. According to the java.util.concurrency spec, the peek method is used to see if the queue has tasks in it and not used to take any tasks off the queue. Not only that, but after the task was invoked, another task was being pulled off the queue. So what happens when multiple threads come through that block of code and peek? Well, they can both get the same task and invoke it. Bad bad bad.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

The Semantic Question: To Delete or Not To Delete

September 12th, 2008

Originally published on semanticweb.com


A few months back I posed a question to the folks at DERI (Digital Enterprise Research Institute) from the University of Ireland when they came to visit Radar Networks. This is a question that I have struggled with for a long time; seeking for answers anywhere I could. When I asked them, I heard the same question in response that I always hear.


Why? Why would you ever want to delete something out of the ontology?


Ontologies were not originally created to have things removed from them. They were created to classify and organize information in a relational format. Just because a species goes extinct it doesn’t mean it should removed from the domain of animals does it? Just like a car that isn’t manufactured anymore or a disease that was officially wiped out. These and many more are probably the reasons why Semantic Web gurus and ontologists alike don’t like the idea of deleting entities.


I am helping to create a social site where users generate content; objects, notes, data, and connections to others and other things that are their own. If they want to delete something that they have created, so be it. Sounds easy right? Well, yes and no. This problem is dealt with throughout computer systems. It is essentially all about managing pointers in memory. You can’t delete something that other things are pointing to. Who knows what will happen or how our application will respond when certain pieces of information are missing? Some things we account for on purpose because they are optional — but some things we just can’t. Every application has its unique constructs, whether it is built on a relational database or a triple store.


So what I have to do is define ontological restrictions, stating what links can and cannot be broken. On top of that, we must worry about permissions. Am I allowed to break an object link from someone else’s object to my own? Also, what if the object being deleted has dependent objects that cannot exist alone, or more importantly, don’t make sense on its own? A great example of this is a user object and a profile object. There should either be zero or two, never just one.


My friend and coworker Jesse Byler had dealt with a similar problem in the application tier a few months back regarding dependent objects. He had written a recursive algorithm that would spider the graph until it hit the lowest leaf node matching certain criteria and then begin to operate. I took this same principle and pushed it down into our platform and began to mark restrictions in our ontology.


This is where it became tricky. Some relationships are bi-directional and some are not. In the user and profile example above the relationship is bi-directional; however, many of our relationships are not. An example to this would be a group and an invitation to that group. Sure the group can exist without invitations, but the invitation cannot exist without the group.


All in all, the design pattern isn’t overly complex, nor are the ontological restrictions. But as a whole, it makes for an interesting problem with a lot of nuance. Careful consideration must go into this process because mistakes could be catastrophic. Data integrity is paramount and dangling references could leave the application in a terrible state due to one bad linkage. Although simple in practice, the execution is anything but.


And for those of you who are still asking yourselves why?


Here’s the answer. Scalability. As if working with a triple store wasn’t hard enough, keeping useless data around that will never be used again will definitely make matters worse. We are attempting to build a practical everyday application — not classify organisms. Surely there is a place somewhere in the mind of the ontologist where he can think practically about using ontologies for data storage. Isn’t there?


As more applications are built using OWL and RDF, this problem will become more and more real — and there’s nothing the ontologist can do about it but adapt, or die a little inside. Either way, at the end of the day, I am still an engineer trying to make do with what I have.


If we must delete, then so be it.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

Open source home automation project

August 15th, 2008

open automator screen shot
Being a long time geek and open source advocate I’ve finally decided to start an open source project for home automation. I’ve always dreamt of being able to wake up to my curtains opening and my heat turning on rather than the usual “beep! beep! beep!” that beckons me to work each day. How about checking on the house when I’m away or open the front door while I’m in the back of the house. The possibilities are endless and my ideas are just beginning to flow.


The project is called Open Automator and it can be found on Source Forge’s site. Its still a very basic framework but its coming along well. It works using the Insteon protocol that communicates over the power lines in your house. Its very similar to the X10 of yesteryear but with updated speed, reliability, and redundancy. It costs a little bit more but it will be well worth it. These devices can be found all over the internet from sites like smarthome.com.


This first rendition will be geared toward the iPhone and Simple Home Net’s EZServe which communicates via an XML socket connection. That being said, I will be making this application very flexible allowing for many different types of implementations, not just Insteon either. The application is Java based with Maven being used for building and dependency management. This will be coupled with Spring and Hibernate to manage database and model view support. The final product will have Jetty and some sort of SQL engine rolled in to make the application extremely portable and platform agnostic.


I will be writing a lot more about this project in the months to come as well as recording some online videos about how it works and how to set it up. I would like to make this product as simple as possible so its usable by the masses. Just because its open source doesnt mean its going to be complicated. If you are interesting in being a developer please let me know.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

5-speed and limited slip differential installed

July 31st, 2008

I have owned my 1973 BMW 2002 for 3 years now and put in countless hours of work and changed out nearly everything, except the drive line. Two weekends ago I went up to my friends shop to finally change it all out. I have been running the stock setup from the clutch back for too long. Also, the lack of a 5th overdrive gear is hurting my gas mileage.


The install went pretty smoothly and took only a day to accomplish. While we were putting in the new transmission and driveshaft we also threw out the stock open differential for a 3.9:1 limited slip. I have said this after numerous projects before, but wow it feels like a new car! The transmission is smooth and the shift throw is much shorter and tighter. In conjunction with the new differential gear ratio the gets off the line quicker. Also, since power is put down the wheels evenly it comes out of corners like a race car. Previously with my open differential the car ‘wiggled’ as it regained traction after a hard corner due to the fact that is sends power down unevenly.


To see pictures of the installation check out the Flickr set.

Open differential versus limited slip differential

Open differential vs a limited slip

I’m not going to go into great detail regarding all of the differences because that can easily be Googled. I just wanted to show the the main difference. On left we have my stock differential which is an ‘open differential’. On the right we have my new Limited Slip Differential (LSD) with a gear ratio of 3.9:1.


The major difference and also the major weak point of the open differential are the spider gears. This allows the wheels to spin independently. With the car in the air, I can spin one back wheel and the other one will spin in the opposite direction. The limited slip on the other hand doesnt have those gears. Not only can it handle more power it also makes locks the wheels together. Putting the car in the air and spinning one wheel will make the other spin in the same direction. More information can be found at howstuffworks.com.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

20th century steampunk clock

July 13th, 2008

Steampunk nixie tube clock finished


Well, the victorian ages are finally over. The internal combustion gasoline engine has replaced the need for steam and coal. People have devices in their houses to talk to one another and we no longer burn oil to read at night. These were also the times when we understood electricity well enough where we could really start building the unimaginable. Although nixie tubes were created in the 1950’s, neon signs have been around since the early 1900’s. I have always had an interest in these interesting little tubes and decided to give them a period correct home, albeit strange.


This project started out from a kit from tubeclock.com. The only other thing I really needed was a proper clock case which eBay gladly provided for around 20 dollars. Glueing in supports for the nixie tube clock to sit on The only other things I needed were a few hand tools, clamps, and some wood scrap. As you can see from the picture to your left (click to enlarge), I cut two straps of wood and glued them to the inside of the clock. This served as the mounting point for the tubes. After that, it was a matter of lining everything up nice and plum before I drilled two mounting holes. To finish the project, I smoked the glass to give it a patina’d look.


All in all it was a pretty simple and fun project to bring some nixie tubes into my home. In total the project was less than 200 dollars with most of it being spend on the tube kit. More pictures can be found in this flickr album.

nixie tube

What is a nixie tube?

As you can see from the picture, its a metal apparatus that sits inside a glass tube (removed in this photo) that is filled with neon gas. When an electrical charge is applied to one of the ten digits, cathodes, they glow. They come in many different shapes and sizes and can be controlled in a number of ways. In this case, they are used to display the time. To read more about how they work and where they have been used check out the nixie tube wikipedia article. Thanks to the evil mad scientists for the photo.

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!

New fuel map for the 2002

July 7th, 2008

Fuel map for the ITB BMW 2002Its been a long time since I last tuned the car ever since I started on the new M3 motor. Just as I was getting back into practice and tuning for efficiency given the high gas prices, a friend gave me his fuel map for a similar car also with Individual Throttle Bodies (ITB’s). After about 30 minutes of tuning the car ran superbly!


It had taken me quite a long time to get where I was and from the looks of the map above it would have taken me several more outings. One of my main trouble points was coming back off overrun and right off idle. The latter is a common problem with ITB’s that normal cars dont have with one throttle body. When the throttles quickly open the pressure drops to near full atmosphere and therefore we are getting much better volumetric efficiency requiring more gas.


So far everything is performing wonderfully. The hesitation off idle is gone and the power band is strong all the way up. Also, overrun back onto wide-open throttle is amazing. The fuel efficiency appears to have improved as well. This may not make sense to some but hopefully this is useful to somebody out there (click on the picture above to see a larger image).

Share:
  • Digg
  • del.icio.us
  • Facebook
  • Google
  • Reddit
  • StumbleUpon
  • Technorati
  • E-mail this story to a friend!