February 2008 Entries

I contributed my first bit of work to an open source project.  I added in some functionality to the Facebook Developer Toolkit over at CodePlex.

image

Both the VB and c# branches should be functional.

So my father and I are distinctly two different styles of engineers.  This was made clear when we were building the frame for my skateboard segway.  This XKCD strip outlines partly why this may come up:

So my dad is mechanical and I'm a computer engineer.  I was heavily afraid of not getting the frame done in time while he was afraid I wouldn't get the software written in time.  I'm freaking out since I don't think the hardware will be done and he is freaking out cause he is under the impression my lazy ass (partly true) hasn't really touched the software aspect of it.  I got Xbox achievement points to win!

But in reality, I have parts done.  I've done majority of the gyro code, mentally though through how to handle the main application and did tons of research on getting self balancing algorithms.  Hopefully a decent chunk of this will be done in this week / next week while I'm on an airplane.

From a outsider's perspective, I think most software development scares people since it is in tons of little blocks that magically come all together at the end.  I get one block done, do another, and another then all the while no work appears to be done since there isn't the appearance of progress.  No UI being constantly shifted and updated.  Nothing visible.  A mechanical engineer always has something growing and physical.  At the end of the day, they can put it on someone's desk and say "see what I did".

I still got 6 2 months until Maker Faire 2008, right?  don't worry, it is already done.

Here is the frame almost done.  The motors actually had to be removed due to a little issue but this is a near finished version.  I've decided to move everything possible to under the skateboard.  Why would I move the eBox 2300, gyro, and speed controller under?  So I can have 10.8 Amp Hours worth of NiMH batteries hidden and a full charger in the frame.

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Skateboard Segway Frame Building

Here are pictures from yesterday.  Today I got 1 motor mounted.  The speed controller, 2nd motor, and computer should be an easy mount.  Mounting the skateboard may be a different ball of wax.

Things learned today were:

  • Tapping screw holes is both easier and harder than I thought.
  • It isn't a good thing when the people at Menards say "You're back again?"
  • Home Depot is more expensive Menards
  • The drill press from Home Depot sucks, it is a Ryobi.  The supposed "flat" area where you're suppose to drill has a 1/16" dip in it.
  • I should have gotten the more expensive drill press.
  • So many parts were bought that didn't need to be.

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

Segway Frame

How to access different worksheets to do calculations.  Yet another awesome time saving trick for me.  End of the month reports may never be easier.

=SUM(WorkSheetName!M14:M26)

And yes, I know I must be the last person on earth to know this and I happily accept that fact.

Here is part of my frame for my skateboard.  More will be done / built this weekend.  I'll film / do photos of building it.  In addition, I'll interview my dad on why the frame is built / designed like it is.

ATT00001

I've been playing with the Facebook Developer Toolkit and added in two new sweet features.

I added the ability to set status and to verify if a user has permissions to do tasks.

To do the status update, I also needed to add in a new form to verify a user will allow permission to do certain tasks, like setting your status.

Rather than spend hundreds of dollars in extra power tools (I'm aware I just lost some of my manhood by saying this), I ordered the frame from MiniTec (Thanks Jeff Kelly for helping us out on the phone).  They have a very similar framing solution to Bosch but do custom cutting and according to my dad, will be stronger for this application use.  Using the Bosch system, we'd have to get some additional tools along with the metal, not including the fittings would have cost about $350 to $400.  Now our parts are being cut to length to exact measurements on the proper machinery.

With shipping, it will cost about $470, however that includes a drill press and a tap for some alterations we'll need to do.  Plus there are some extra parts ordered to reduce shipping costs and build delays.  So total I'd say $350 for everything.  I'll post the final list of parts once we get the frame assembled.

I'll create a video interviewing my dad to explain why things are being done the way they are (since to be honest, I don't fully understand why, I just nod my head to make him happy) along with actually building the frame from the pre-cut material.

I can shove battery packs semi creatively around.  I've been chatting with my dad (he's a tool and die maker) about the best way to keep this structurally sound.

Gearboxs lined up

segway package

Top view gear boxes

possible computer and speed controller placement

skateboard top view

Click for extreme close up.  Ebox has the compact flash port on the opposite side as the ports with the USB.

IMG_4153 IMG_4154 IMG_4155

IMG_4161 IMG_4159 IMG_4156 IMG_4157 IMG_4158
Peace Love Code

I launched Peace Love Code version 2.  It is XML based, caching, there is a VB and c# version of it, and runs on .Net 2.0.  It was .Net 3.5 until I remembered my web host didn't support that.  It will soon after I switch to Applied Innovations.  I still need to add in a few more things into my XML file such as pictures for each item, but over all, I'm really happy with how it turned out.

I'll do a Coding4Fun write up shortly for this.

If you want the source, c# or VB flavor?

I wrote what I'll say is the most shameful, yet amusing application while on the airplane today.  It is for the TV show I utterly dread.

I wrote an American Idol text message blaster for Windows Mobile.  It hasn't been properly tested yet on a cell phone but should test it some time this week.

Visual Basic was a good thing back in the day.  But it is seriously ugly.  AndAlso?  OrElse?  So much extra for so little gain.

VB:

If (String.IsNullOrEmpty(item.ImageUrl) _
    AndAlso ((item.Variants.Length = 0) OrElse Not HasFiles(item.Variants))) Then
        FileNotFound.Visible = True

c#:

if (string.IsNullOrEmpty(item.ImageUrl) && 
    (item.Variants.Length == 0 || !HasFiles(item.Variants)))
        FileNotFound.Visible = true;

AndAlso? OrElse? So much extra for so little gain.  Yes, I know if I gave it to my mom, she could read the top line but not the bottom.  With 1 minute of talking, she could understand ! is not, || is or, and && is and.

And don't even get me started on the white space.