How Toddlers Can Accomplish What You Can’t.

My wife has accused me of being secretly delighted by our son breaking things. She is, of course, correct.

Any proper geekly father should be. To us, items around the house (particularly those which use electricity) should be replaced as often as they can be reinvented by adding new letters to their name. Hence a Nintendo DS is all fine and good so long as there’s no Nintendo DS Lite, Nintendo DSi, Nintendo DSi XL or certainly a Nintendo 3DS behind the glass at Wal-Mart.  Instead, my wife believes that they should be replaced according to the same strict criteria I have for replacing underwear: When they absolutely can no longer continue to serve their designated purpose.

Our son helps us bridge this gap by destroying things before they have a chance to stop working on their own, but so far not before the next generation of the technology is out.

In 2000 I bought the JVC RX-7000BK. It was a beautiful audio receiver, and packed full of technology for the time.  5.1 multichannel surround sound, Dolby Digital and DTS decoders built in, multiple optical digital inputs, on-screen display for configuring and even video-passthrough to watch different sources … Okay, I know it sounds remarkably vanilla now, but eleven years ago, this stuff was amazing to have inside a home.

It all finally came to an end the other night as D.L. happily pushed buttons and turned knobs which had the effect of making lights change, scrolling words across a display and making things really loud or immediately quiet. It’s kind of the best thing ever for a fifteen-month-old to get his hands on.  Somehow he pushed one button too many, and the display turned off forever.  Followed about half an hour later by the sound, which for some reason continued to function and amuse the child for a while.

Before I had even ascertained that the receiver was, in fact, dead, I heard someone say, “You officially have the family’s sanction to search for a replacement.”  Or something like that.  Whatever the exact words were left the distinct impression that my wife was planning to pick up where Tony Soprano left off and refusal of this offer was not so ambiguous a choice as it might otherwise have seemed.  Come to think of it, I definitely should have capitalized Family in the quote above.

Just like that, my boy had done in fifteen short months what I hadn’t been able to do in five years: convince my wife that it was time to upgrade the receiver. And he’s split his time between working on that, and learning how to walk.  (This appears to have been a 50/50 split.)

The new Onkyo TX-NR509 is every bit as advanced as the JVC was in its day, and I’m certain that it will be completely useless to me in another three years.  I hear that four-year-olds are much more destructive than fifteen-month-olds.  Keep it up, son.  Keep it up.  I’m still stuck with the eleven year old speakers.

Building a Guild Site

Apparently I haven’t got the hang of having a baby and finding time for projects.

One project I did find the time to do recently was create a guild page for the upcoming Star Wars: The Old Republic MMORPG. It’s almost unnecessary, though. Even pre-launch, the game offers default guild pages for members of the site, and includes forums (public and private), Message of the Day, Mission Statement, and Roster Management. It looks like the roster management functionality will actually have interaction with the game to actually manage your membership from outside the game. Also, in allowing you to create your guild early, the developers will try to reserve the name of your guild when the game launches, if you have four pre-order members in the guild early enough.

Our guild is Korriban Council. Whether or not we get to keep the name is up in the air, since there was an earlier guild with the same idea. That didn’t stop me from dropping $10 to register the domain name, though. (Because, of course, I have an illness. And every time a remotely good idea for a website name pops into my head, I register it compulsively. Witness this site.) So far it’s co-workers and my sister.

[Thank you for joining me for a moment in Tangent Corner, the part of my article which really has absolutely nothing to do with the rest of whatever it is that I’m talking about. Today’s topic: Why Sith? There are a few reasons. Chief among them, Jedi are a bunch of whiners. Or is it Jedis? I know the plural is written down in a book or on the Wookiepedia or off the top of every Comic Con attendee’s head. Whatever. The point is, they’re a bunch of whiners. The Jedi, not the awesome Comic Con attendees. “But I was going into Toshi Station to pick up some power converters!” “She’s forgotten me completely!” Whiny little whelps. My guess is that while not everybody who chooses to play a Jedi will be a whiny force-jockey (to be fair, a lot of cool people have been waiting years to play a Jedi in this game), every whiny force-jockey will choose to play a Jedi. On the flip side, jerks are going to be more likely to play Sith, all gankers are jerks, so most gankers are going to be Sith side. It’s just logical that if you want to avoid getting ganked, grab a red light saber.]

Anyway, back to the guild page. I didn’t want to just plug in some data at an existing guild-portals-R-us site and call it a day. I like having control over things (Sith, remember?), I like having things unique, and I like figuring out thinks I didn’t already know. Site building is always a learning experience, because I’m rather awful at it. (Again, witness this site.) I’d built a partial guild page for someone else before, but they wanted it based on a forums-centric CMS that made managing non-forum content nearly impossible. It took forever to get changes in, so it had very few features.

To start with this time, I chose my favorite Content Management System: Drupal. With enough work, Drupal can be anything you want it to be. With a few structure customization modules it’s even fairly easy.

Let’s be honest about Drupal though: Out of the box, its ugly. Not just its default themes (which are kind of nice, really, just a tad plain), but its built-in modules are feature-sparse. People often complain on their forums about how crappy the forums in Drupal are. Invariably, some nimrod responds with, “The forums you’re using now are the core Drupal forums!” This leaves everybody so dumbfounded that someone would be PROUD of this that the complainers go away and never come back. Probably switch to Joomla! along the way. (Which is also a nice CMS, but the really great modules are generally not free … but you do tend to get what you pay for.)

So I had to heavily modify Drupal to get it to be my guild site. Here are the things I’ve added to it and how I did it.

Custom Theme:
I started with the Zen theme and modified the CSS. In one case (polls) I had to go a bit further. I modified the .php for poll bars to include an extra div element, so I could use an image as a background overlay. Most of the theming I did used functions that are only available in current-generation-web-browsers-which-are-not-Microsoft-Windows-Internet-Explorer. Honestly why people use IE is beyond me, not that many do. Currently about 5% of my traffic comes from IE browsers. But even that beats the pants off of Apple Mac or i OSes. I evidently have nothing to offer hipsters, thank goodness. Anyhow, if you look at the site on IE 6, IE 7, IE 8, or IE 9, the site displays in four different ways, none of them right. If you look at the site on Firefox, Opera, Chrome, Safari, or even a NookColor, they all display the same.

Anyway, I suck at theming (once again, witness this site) but I at least managed to stick with it this time.

Forums:
I toyed with the idea of having a third-party forum and just tying user accounts to it, but I really hate when I’m on a site and the forums have no awareness of the site, and the site has no awareness of the forums.

I loaded up the Advanced Forums module. It was more “Advanced” in Drupal 6 than it is now (because of other modules like the Author Panel and such) but it’s head-and-shoulders above the seemingly random list of articles that they call posts in core Drupal.

I haven’t 100% completed theming the forums, but they’re good enough for a start.

Roster/Member list/User profiles:
Okay, so this isn’t as cool as the official SWTOR roster, since it won’t actually have in-game impact (though I’d love if they released some kind of API to allow me to do that), but it’s nice enough.

I used the Views module to create a list of current members on the board (minus the Admin account), gave a default icon Heheheh ... and called it a day.

When clicking on the users it shows their name, picture, the most recent forum topics they started, and the most recent comments they’ve made. I created each piece of the profile separately with Views, then tied the multiple Views together with the Panels module. Nobody told me I needed Panels, so let me help you: If you have a Drupal site, you need Panels. Just get it, you’ll find a use for it later.

Screenshot Gallery:
Since the game hasn’t started yet, this is currently empty, but it works and it works well.

I created a Content Type called Screenshot using core Drupal 7 functionality, because CCK (Custom Content Kit) is the ONE thing they’ve actually finally moved to Core Drupal. It’s like an article or a blog post, but all it lets you do is upload a picture with a one line description. You can’t even give it a title, because I used the Automatic Nodetitles module to automatically give it the title of the user who uploaded it and the date/time they did so. The images are then resized downward to a maximum size of 1600×1200 because yes, some people game on insanely sized multi-screen displays.

Then I have a View set up that checks for all the posts of type Screenshot, displays thumbnails of them in a grid, and puts a nice title underneath them.

Very simple to set up, but it works nicely. (I had previously built an Entire-Gallery-As-A-Single-Node pseudo-module that I may re-introduce into this site later, but for now I really like having just a Screenshots gallery.)

Voice Chat:
Oh, this one was cool. The Voice Chat isn’t really built into the site. The site just displays the current status of our TeamSpeak3 server.

I had actually built this to work with Ventrilo, but all the work I’d put into that was thrown down the drains when I realized that Ventrilo will only let you host 8 people simultaneously unless you rent space on someone else’s server. You can’t license it for more and run it on your own server. Since the point of having a voice server is to coordinate during raids, and you’re going to need more than 8 slots, we had to move over to TeamSpeak3.

The bright side is that I had to do a lot more work to get Ventrilo to work than TeamSpeak3. TeamSpeak3 has a query tool built into it, while Ventrilo requires a second program to be installed. Also, I had to do the PHP from scratch with Ventrilo, and with TeamSpeak3 I found TSStatus. This saved me at least a day of figuring out all the hooks myself.

I did have to modify it a bit. I couldn’t figure out why it had been programmed to build links with javascript, so I re-wrote them to simple PHP. If anybody’s curious in doing the same, here are the changed lines in tsstatus.php:
$link = "ts3server://$this->_host:".$this->_serverDatas["virtualserver_port"]."?password=********&channel=".htmlentities($channel["channel_name"])."&nickname=$this->uname";

$out .= '<div class="tsstatusServerName"><a href="ts3server://' . $this->_host . ':' . ($this->_serverDatas['virtualserver_port']) . '?password=********&nickname='.$this->uname.'"><img src="' . $this->imagePath . '16x16_server_green.png" />' . $this->_serverDatas["virtualserver_name"] . "</a></div>\n";

I put the HTML that was generated from the tsstatusgen.php file directly into a block in Drupal, and added two lines, “global $user;” and “$tsstatus->uname = $user->name;” and then added “public $uname;” to the tsstatus.php file so that when a logged-in user clicks on the links, it automatically logs them in using their board name as their TeamSpeak3 name.

Still to be added:
I’d like to handle applications for the guild through a web form. I’ll probably just extend the base profile/user account/registration questions and turn it into an application, a registration, a user account page, and a profile page. It’s already halfway there already.

I’m NOT going to put a shoutbox in. I honestly can’t figure out the point of those things.

Now, sadly, it’s all about content. Which is going to be more difficult to find time to post … Because … One last time … Witness this site.

Happy SysAdmin Appreciation Day!

I’ve been meaning to get a post out about D.L.’s first birthday, but the weekend following it was a grueling one, and I just don’t have it in me, yet. Maybe after we get his First Birthday Photo Shoot done.

Instead, I’ll just do a quick drive-by about SysAdmin Appreciation Day.

Today (the last Friday of July) is SysAdmin Appreciation Day. Most of my career has been spent as a SysAdmin because it’s fun. There are some SysAdmins who might not agree, but most do. It’s not one of those professions where people ask if you do it at home and you say, “Oh, no. Computers are what I do at work. I just want to get away from all that when I get home.” For every one SysAdmin I hear say that, I know at least five others who are just waiting for someone to ask them how they’ve set up their home network.

“Oh, it’s great!” they’ll exclaim. “I set up a Linux SSH server on a VM so I can proxy in over an encrypted tunnel from work. Because, honestly, who’s going to block port 22?” Well, not many SysAdmins. Some network engineers, though. Bastards.

The point is, you can generally gauge how good of a SysAdmin you’ve got by the enthusiasm with which they answer that question. A good SysAdmin isn’t necessarily someone who’s been around forever and seen everything (though that helps, and those guys are awesome), but how energetic they’ll be in tracking down something they haven’t seen before.

But an appreciation day? Really? Here’s the problem: We’re not under-appreciated. Most places I’ve worked, the SysAdmins get bribed on a regular basis with brownies and cookies so we won’t crack down very hard on IMs and social media sites. Sadly, nobody does that at my current company. (You reading this guys? You want Facebook back?)

Some picked-on IT professionals say that nobody ever thinks about the job they do until something goes wrong or someone can’t get something they need. I haven’t found that to be the case at all. We wear the coolest geek-shirts, you all come to us to talk about the latest gadget you’ve bought and love, and every person in the company knows us, even though we know about four people’s names in the company.

The only down-side is that you do have to put up with us wearing white socks with slacks and dress shoes. That’s really non-negotiable.

Father’s Day Geek Projects

I’m not a geek by accident. I was raised a geek. My father was a geek and his father before him was a geek, only he wasn’t called a geek, because “geek” meant something different in his time that would land you in a side show.

I’ve been having a difficult time with a lot of different aspects of my world, lately. My father passed away unexpectedly in March. I owe most of who and what I am to him, especially the part with a terrible sense of humor.

He introduced me to the Geek Project. He was always using fun techniques to teach my siblings and me new concepts in a way that would help us remember them and hold our interest.

As an important side note, his ideas weren’t always the safest. He had a different concept of “safety” than the rest of the world. At one point he actually got prescription safety glasses and wore them every day from then on. Every time I called him for help on something, he’d start by telling me how he’d done it in the past, then conclude with, “But you probably shouldn’t do it that way. Saying it out loud, it doesn’t sound very safe.” (He read my article on the baby swing hack and advised me that our home would likely burn down until I asked him to explain the math behind his worries.)

This Father’s day will be one of extremely mixed emotions. It will be my first Father’s day as a father, and my first Father’s day without a father. I think this article will fit both topics.

These are three projects my dad did with me when I was very young. They’re changed slightly to make them easier and “safer.” (One originally called for getting tubes made of soda lime glass then cutting, melting and blowing them.) They’re still not all entirely safe. There’s only so much you can do when dealing with projects from the mind of a man who figured it was probably for the best if his eyes had safety glass in front of them at all times. So … You may not actually want to do them.

Let me re-emphasize: You’ll probably end up dead, blind, or both if you do these.

They’re also all cheap, which balances out safety concerns! They essentially use trash, which I’m always keen on. (Not really, I just enjoy looking for reasons to use ‘keen’ in a sentence because I think it’s a nifty word.)

They are: a Cartesian Diver, a Soda Can Flyer, and a Pinhole Eclispse Viewer.

Cartesian Diver

Cartesian Diver with a bonus shot of the Soda Can Flyer

  • Time: Five to ten minutes
  • Cost: Pretty much made out of garbage, so close to free
  • Most difficult part: Using a hot glue gun

Materials:

  • Pen cap (Biro/Bic/Any pen cap that has a dangly bit)
  • Anything to add weight to the dangly bit on the pen cap (paper clips, clay, other assorted trash)
  • Transparent water or soda bottle with cap
  • Glue gun glue
  • Water

Tools:

  • Hot glue gun

Oddly enough, I never got to do this in any school class, and never saw it on Mr. Wizard. (To be fair, my dad only showed us the Mr. Wizard’s World episodes from the 80’s. He never got us the Watch Mr. Wizard episodes from the 50’s.) My dad did this experiment/project with glass tubes made of flint glass. He used a propane torch for 90% of his projects, so he was always prepared for glass blowing. The major advantage of blowing a small bubble on one end of the glass tube while leaving the other end opened but slightly melted to smooth it is that it’s easier to draw faces on the bubble than on a pen cap.

Most pen caps have holes in the top of them, so this is what the glue gun is for: Seal off the holes in the top. This will keep the air to keep your diver buoyant.

Quick and simple: Fill the bottle with water, not quite to the top. Weigh down the pen cap, and leave it with just enough air in the top of it so that it is barely floating.  Screw the bottle’s cap on tightly. Squeeze and unsqueeze the bottle.

The cap should dive down to the bottom of the bottle when the water pressure increases, then rise back to the top when the pressure goes back down again. (Depending on the amount of air in the cap, you may have to squeeze harder.)

[Cartesian Diver video]

If you don’t want to bother with the pen cap, you can try ketchup packets or wooden match sticks with the tops cut off, but you’ll have to squeeze much harder.

Soda Can Flyer

  • Time: 5 to 10 minutes
  • Cost: Once again, garbage
  • Most difficult part: Using a rotary cutting wheel to cut a straight line

    Behold! Yes, you will bleed to death.

Materials:

  • Soda can

Tools:

  • Rotary tool (Dremel) with cutting wheel
  • Can opener
  • Safety glasses (this can be ignored if your every day glasses are OSHA approved safety glasses for whatever reason)

It’s a soda can that flies. You may know this under the commercial names of Toobee, X-Zylo, Turbo Tube, Dragon Ring, etc. I’m calling it a flyer because none of those companies call it a flyer. My dad showed me how to make these further back than at least one of those companies existed.

Maybe it’s just  my can opener, because I don’t remember any that could do this from when I was a kid, but the can opener takes the top off a soda can perfectly. It leaves no jagged edges like the ones that threatened to slice off my thumb as a child. Looking back, I’m probably lucky my dad didn’t just hand me a rusty sword and challenge me to how closely I could look at it while running at top speed.

If your can opener isn’t as cool as mine, you’ll have to do two things: 1) Be jealous, 2) Find your own way to get the top off.

Next, use your favorite rotary tool attachment to cut the can about 2 1/

2″ down. (For European/Red Bull sized cans you’ll want to cut around 5 1/2 cm down, but the narrow opening won’t let a lot of air through so they won’t work very well. For giant energy drink cans you’ll probably want to cut about 3″ down, and they may be a lot easier to throw.) Do your best to file the edges. Or not. Either way, you’re probably going to wind up like Mr. Dalton, my junior high school wood shop teacher, who had fewer fingers than I’ve had cars.

And throw! Outside. After lots of practice. How? Like a football. An American football. Throwing it over your head with both hands like a soccer ball won’t get you anything but laughed at. By me. If you’re having troubles, check out Toobees on YouTube. And follow them back to their home page and buy one there, so you won’t slice off your fingers like that guy in Mad Max catching the kid’s boomerang. (Man, that scene always gets a giggle out of me.)

[Soda Flyer video]

Or you can just make it with paper and tape: Fold down an edge of the paper with a thick seam over and over and over. Tape the two sides perpendicular to the folded edge together, so you have a tube with the top being extra thick. Throw. (Again, as the appropriate sports ball mentioned above.)

Pinhole Eclipse Viewer

  • Time: 10 to 15 minutes
  • Cost: Still garbage
  • Most difficult part: Finding a use for it (seriously, we’re talking cutting and taping)

Materials:

  • Soda can fridge pack, or other long box or cardboard tube (Why Diet Dr. Pepper? Because now Diet Dr. Pepper tastes more like regular Dr. Pepper. Now back off!)
  • Aluminum foil (or aluminium if aluminum is not available in your country) (Full disclosure: I like to use wrappers from Rolos, as it gives me an excuse to buy and eat Rolos.)
  • White paper
  • Masking Tape

Tools:

  • Scissors or precision hobby knife
  • Pin or needle

This is a box you can use to “safely” watch an eclipse. Truth be known, I don’t know how much I trust watching the reflection of the sun off of white paper, because white paper is nearly as pale as my skin, and I KNOW it can’t be safe to see the sun reflected off my back. Ask my wife.

The longer the tube, the larger the sun’s reflection will be. With the fridge pack, it’ll be about 1/8″, so be prepared to squint.

On one end of the box, cut a small square, smaller than your square of foil. Tape the foil over the square. Using the pin, poke a tiny hole into the foil. (My fridge pack box had some holes, so I used another box to matte out the holes. I could have just covered the whole end with foil instead.)

On the other end of the box, inside, tape a white sheet of paper. This will be the area on which the sun will be reflected.  On the side of the box near that end, cut a small view port.

That’s it. Face away from the sun, point the end of the box with the foil on it toward the sun. (Seriously, don’t look at the sun to line this up, what were you thinking, you knew better than that.) Look through the view port at the sheet of paper, and you’ll be able to watch the eclipse as it happens.

Now, this is an extremely lame project and you can only use it as often as there is a partial solar eclipse. It can, however, pull double duty as a pinhole camera if you re-cover the viewing port, get some photo paper to replace the white paper, and turn your bathroom into a make-shift dark room.

This is the paper at the end where the sun will reflect

This hole could be muuuuch smaller.

I could have gone smaller on the pin hole, too.

The top of the box gets aimed at the sun, and if you look closely you can see the sun reflected as a small white circle. Had this been during a partial eclipse, it would have looked more like a cookie that I'd eaten part of.

 

Ultimate Baby Monitor (for geeks)

This blog is not dead. A very specific issue has made it more difficult to update, but hopefully I can turn that to a positive in a (fingers crossed) soon-to-follow entry. Hint: It involves a lot of soda. A soda can, a soda bottle, and soda glass tubing.

Anyway, for now, I unearth my Ultimate Baby Monitor. (Disclaimer: I’m a bit of a geek. “Ultimate” by my standards may not be ultimate by yours. It’s more likely that “ultimate” by my standards is mostly unusable by normal standards and a little pathetic to boot. And in cases of food, it actually just means I added cheese to it.)

As it is certainly not All Things To All Parents, I’ll highlight the quick pros and cons:

Pros:

  • Video monitoring
  • Audio monitoring
  • Infrared night vision
  • Wired or wireless (except power)
  • Pan & tilt camera movement remotely
  • 2-way audio (currently unimplemented, only under very specific circumstances, and I can not for the life of me figure out why you’d want to talk to your baby through your baby monitor)
  • Viewing available through smartphone anywhere you have data signal or WiFi access
  • Can record (again, under certain circumstances)
  • Motion detection alerts
  • And, of course price: $60. That’s pretty close to as cheap as you’ll find a video baby monitor

Cons:

  • Audio sucks
  • Slight delay, about 1 1/2 seconds over LAN
  • That $60 only covers the camera, for a receiver you have to use a computer, tablet or smartphone
  • Audio REALLY sucks
  • Not battery operated, will require power cord
  • Okay, so the audio sucks so much that my wife actually still uses the audio baby monitor we had before
  • To get audio on smartphone, you’ll probably have to pay for an app, and I haven’t tested that

So what’s the big secret to it? The camera.

First, a few things about the specific camera I linked to.

  1. That’s not the same exact camera I bought. I bought an even Brand X-ier camera. Like, it doesn’t just not list a manufacturer, but nobody on the Internet seems to be able to track it down. Worse, people don’t seem to care. It’s like a mystery so ancient that people refuse to look lest their faces melt off and Harrison Ford is forced to turn it over to the government.
  2. The one I’ve linked to is a generically packaged version of a Foscam camera. It is compatible with Foscam firmwares, so you can update it as new firmwares come out. (This is important as it has an internal web server for its user interface that’s based on its firmware.) For my camera, it won’t accept the Foscam firmware, I can’t find new firmware from the manufacturer (apparently an ancient and vengeful pharaoh), and I’m stuck with it. FOR LIFE. (It’s a B-series, for whatever that means.)
  3. Mine cost $4 less on eBay. Who’s laughing now?
  4. It ships from Hong Kong, so allow enough time for your baby to graduate college for it to arrive.

The same camera is about $100 on Amazon with faster shipping, and the price goes up from there.

I’ll stick with the $60, because it’s more fun to complain about waiting than … Well, just about anything.

Wait a few years, get the camera, unwrap it and … Well, good luck. Most of the different re-branders include installation CDs (with .DOC documents and what equate to Power Point Presentations), but they’re nearly as good as the ones that come with no documentation at all. If you’re used to configuring network-attached devices through web interfaces without instructions, this’ll be right up your alley. The default IP address of it is 192.168.0.178 (though some are on 192.168.1.178) on port 80, with the user name of admin and the password of 123456. (I have actually randomly found some of these on the Internet that still use this user name and password. Sadly, they’re mostly demo cameras and are invariably set up to watch a couch in Singapore 24/7. Possibly the same couch.) So if you’re using a different internal network than 192.168.0/24, you’ll have to change your computer’s IP address to find and talk to it. Potentially the “Camera Search” software that comes with it will find it for you, but I’m more likely to stick with changing the address.

Bizarre bonus configuration tip: Some of these come with Dynamic DNS pre-configured. There’s a sticker on the bottom that has the URL for your camera that it will automatically bind itself to. Plug the camera directly into your broadband modem, and configure it from a friend’s house or your smartphone using that address.

Configure it to an address that’s actually in your LAN’s network range, configure your router to forward a port to it, and you’re mostly done.

At that point, you could kick off Internet Explorer, install the ActiveX plugins, and watch and listen to the camera. And if you enjoy Internet Explorer … That’s probably all you need to do.

(Quick note: Internet Explorer with those ActiveX controls is the only way to get all functionality of the camera via a web page. This includes using the microphone on your computer to talk to people in range of the camera if you’ve connected external speakers, and recording video files off the camera. There are some stand-alone programs that come on the CD and others you can purchase that will also include this functionality.)

With the current firmware, the audio portion is (mostly) only available using the IE ActiveX controls. There are two work-arounds to this: You could use a Firefox plugin that displays Internet Explorer through a Firefox tab (which defeats the point of not using Internet Explorer anyway and isn’t possible in Linux), or you can use VLC Player.

The camera has a lot of hidden functions built into it. Most are accessed through hitting URLs in it and kicking off some CGI magic. I found out about these while working on my own Ultimate Baby Monitor project, and found somebody else’s.

He has the same Super-Brand-X-est camera that he maintains he discovered to be a Netwave IP camera while avoiding the fate of Nazi relic hunters. He found a PDF that contains some of these functions here.

The videostream.asf address will serve up both the video and the audio in a format that VLC Player (and mplayer) will accept. (It deceptively looks like Windows Media Player will accept it, but this is a trap. It is conniving and spiteful.)

There are a few other commands that I’ve found to be useful, too. By using videostream.asf and these other commands, you can build your own web page that will display video, play audio, and control the camera’s movement, and it will work in Internet Explorer, Firefox or Chrome, and will work in Windows or Linux.  You have to install VLC Player and its Mozilla plugin for this to work.

The idea for this page is that you embed the VLC Player into a web page, then include hyperlinks which send commands to move the camera up, down, left and right.

The page I’ve built for that does JUST these five things: Embed the player (once for IE, once for Firefox/Chrome) and move each of the four directions. You can easily pretty it up with buttons and backgrounds, and sparklies and flashies and super emo art and heavy music like your defunct Myspace page you haven’t looked at since you met your child’s co-parent.

Okay, it does one more thing, it embeds your user name and password in each of these things so that you don’t have to type it in. Obviously, you probably don’t want to actually publish the page to the Internet this way, just drop it on your desktop.

Without further ado, here’s the HTML for it:

<html>
 <header>
 </header>
 <body>
   <object classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" codebase="http://downloads.videolan.org/pub/videolan/vlc/latest/win32/axvlc.cab" width="640" height="480" id="vlc" events="True">
     <param name="Src" value="http://YOURADDRESS:YOURPORTNUMBER/videostream.asf?user=YOURUSERNAME&pwd=YOURPASSWORD" />
     <embed type="application/x-vlc-plugin" name="VLC" autoplay="yes" loop="no" volume="100" width="640" height="480" target="http://YOURADDRESS:YOURPORTNUMBER/videostream.asf?user=YOURUSERNAME&pwd=YOURPASSWORD">
     </embed>
   </object>
   <p />
   <a target="camcontrol" href="http://YOURADDRESS:YOURPORTNUMBER/decoder_control.cgi?user=YOURUSERNAME&pwd=YOURPASSWORD&command=2&onestep=1">Up</link>&nbsp;
   <a target="camcontrol" href="http://YOURADDRESS:YOURPORTNUMBER/decoder_control.cgi?user=YOURUSERNAME&pwd=YOURPASSWORD&command=0&onestep=1">Down</link>&nbsp;
   <a target="camcontrol" href="http://YOURADDRESS:YOURPORTNUMBER/decoder_control.cgi?user=YOURUSERNAME&pwd=YOURPASSWORD&command=6&onestep=1">Left</link>&nbsp;
   <a target="camcontrol" href="http://YOURADDRESS:YOURPORTNUMBER/decoder_control.cgi?user=YOURUSERNAME&pwd=YOURPASSWORD&command=4&onestep=1">Right</link>&nbsp;
   <p />
   <iframe src="#" style="display:none" name="camcontrol"</iframe>
 </body>
</html>

Yup. Just HTML (almost). I’m old school like that.

Also: This is for my Brand-X Cam of the Covenant. For the Foscam and Foscam unbranded, you’ll want to switch up & down, and left & right. The controls are reversed between the two cameras.

Finally, there’s smartphones. The camera I got came with an Android app on the CD. It’s usable, but it’s tiny, doesn’t rotate … It’s not a very good app.

Instead, I’ve installed Tiny Cam Monitor Free, and am using the Foscam profile for it. It’s great, but again the movement controls are reversed. I’d consider paying for the audio version, but the sound really isn’t great anyway.  There are similar apps all over the place for the iPhone.  And if all else fails, the default built-in web page interface includes a Mobile style sheet that’s quite usable from the phone.

And that’s it. My wife enjoys firing up the smartphone app when she hears him stirring, and wants to see if he’s distressed enough to get out of bed. (Or if he’s standing in the crib, or even yanking on and chewing the power cord as she witnessed him do the first night before I’d thought better of it.)  I enjoy full-screening it on my second monitor so I can watch him sleep while I’m working from home.  One of the best parts is that it’s not wasted money. After he (and any yet-to-be-conceived siblings) outgrow the need for monitors, it’ll be a great component of a home security system. You can even set it to send e-mail to your text alerts gateway based on camera movement. Which might not work so great if you have a dog.  Oh, well. Still cool.

 

Baby Swing Hack

The baby swing hack is one of the first hardware hacks most new dads tackle. In fact, I first helped with the baby swing hack a decade ago, when a friend came up against the same problem with his new daughter.

The problem is batteries.  Manufacturer suggested retail price for a Fisher-Price Cradle n’ Swing ranges from $100 to $210, depending on features. Those that take only batteries start at $100, while those that also come with a power adapter (or place to plug one in) start at $140. The extra $40 is a lot to pay for a $10 power adapter. New batteries every other week would be even more expensive.

Hacking the baby swing to accept a power adapter is the low-cost solution. I’m not recommending anybody actually do this: I’m a bad parent, and this is just the way that I did it. While one of the easiest hacks I’ve ever done, please don’t do it without knowing your way around a soldering iron or without taking proper safety precautions. While this hack will allow someone to continue to choose either batteries or AC power, one should take out the batteries when using AC and not attempt to use both.

The first time I helped with the hack a decade ago, it was kind of a ThereIFixedIt solution. We literally soldered the AC adapter’s leads to the battery terminals, and it couldn’t be used any other way. (The father went back later and fixed it a little better, but I think the AC adapter was still permanently attached.)

This is a much more elegant solution … And also still a little kludge. The drawbacks:

  • I didn’t make it so that I could leave the batteries in while running it off of AC. Technically I could, but it would still drain the batteries, and it’d be a mess after the batteries ran out.
  • I wasn’t able to find a DC power jack and AC power adapter end that matched at Fry’s, and didn’t have the patience to order ones that would match. So I used a 3.5 mm microphone jack and plug. It works really well, but it might also get me laughed at.

Our swing is the Fisher-Price How Now Brown Cow Cradle n’ Swing (the 2-in-1, not the take-along swing). MSRP is $100, and you can probably find it for $90. We got ours as a dented box discount at the local Mattel Toy Store Outlet for $50 in perfect condition.  It takes 4 1.5V  D-cell batteries wired in serial, for 6V DC total power. One should use around 1.2 amps (1200 mA) for the power adapter, we settled on 1.8 (1800 mA) since that’s what they had in-store.  (Fisher-Price actually uses 700 mA adapters, but the 500 mA we first tried was massively under-powered.  An 800 mA adapter may do fine.)

We bought a universal power adapter for $15 (could have gotten it cheaper online), and a microphone jack and microphone plug-end for $0.89 each at Fry’s. So, here’s my project notes:

Baby Swing Hack

  • Time:  15 minutes
  • Cost:  $17
  • Most difficult part: Soldering wires, drilling holes

To determine if the hack would work, I wrapped a separate wire around each of the ends of the battery terminals. (Just the two at the ends of the battery chain.) You can see them here:

Hacked Baby Swing project: test leads connected

I carefully touched them to the ends of the power adapter (set to 6V DC), very careful not to cross them, and met with success.  I then unscrewed the back, and found this:

The insides of the baby swing. You can see on the upper right where the wires run to the batteries.

I probably should have gotten a few more pictures here, but it’s pretty straightforward.  I chose a place for the microphone jack that had plenty of electronics-free space behind it, drilled a hole, put the microphone jack in (the hole was so snug that I was able to just screw the jack in, and it was so tight a fit that it required pliers to do so), and soldered it in.  One trick here: Make sure you note which is the positive lead and which is the negative lead, and wire it correctly. I didn’t, so I had to wire the microphone plug onto the AC adapter backwards, too.  You can make out the microphone jack and the wires going to it in this picture:

I then clipped off the end of the AC adapter, soldered the microphone plug plug to it, and that’s it. I don’t have a picture of the AC adapter, but it looks as professional as the baby swing does.  Here’s the end result:

New power jack circled in red. Works perfectly, looks like it came that way.

The end product is a baby swing that has a power adapter (or can use batteries) for $67, instead of $140. If I’d ordered parts online, or found used parts, it would have been even cheaper. And the baby loves it. We’ll probably “hack” it a bit more, and securely put our own mobile at the top, as the one it comes with is fairly uninteresting … To me. Our child seems fascinated with it anyway.

Baby Man Cold

My poor son is sick. More sad than that, though, he doesn’t seem to understand that he has Man Cold. Or maybe he has to grow up first to get that.

Sunday night, we noticed that he had a tiny little cough. He’d do it about once an hour, and we didn’t really think much of it since he didn’t have a fever.

The next day, though, a tiny disaster struck. (Most people probably wouldn’t consider it a disaster at all. Nursing mothers, however, might well consider it a tragedy.) The breast milk that had been stored in the fridge over the weekend had soured, and we had to send frozen breast milk with our son to daycare. This resulted in the milk not having the antibodies from mummy, who’d had the same cold the week before.

So on Monday, things went downhill for the little guy pretty quickly. He had a cardiologist appointment that day (he seemed to enjoy being handled by strangers while naked, we’ll have to have a talk about that) and nothing was caught during his exam. He also wasn’t coughing very much more that evening. There might have been a few extra minutes of crankiness.

Tuesday morning was a different matter. His breathing was raspy, there was more coughing, and his tiny little cooing voice was deeper. (Not like Barry White cooing, maybe, but enough for Tiny Tim to be jealous.)

With how quickly this had progressed, and with his first cold coming at a week shy of four months old, and with Whooping Cough going around, we figured we should get him into the doctor if for nothing else than to tell us what we should be doing for him. (I only trust the parenting books so far. They’re typically written by parents, and parents can be a little nuts. Also, how crazy long was that run-on sentence?)

Anyhow, his doctor wasn’t too worried, but told us what to watch for to see respiratory distress (mostly a sucked-in belly when breathing), and told us to call again if that happened, or if it hadn’t gone away in another week.

Wednesday was when our son had what should have been Man Cold. A regular cold is what women get, which allows them to continue to raise a family, go to work, take care of the household, and not complain.  Man Cold, however, must somehow interact with the “Y” chromosome, making every cold much more severe for men. We can’t fix our own meals, can only get out of bed long enough to find the comfy chair in front of the TV, and the pain is only relieved through a constant dialogue of complaining how bad we feel. (Example: When my wife got this cold, she once asked me for some water, and once commented that her throat was itchy. When I got the same cold, I took two days off work, and got yelled at for not taking a third off.)

So what did he spend his time doing? Laughing. He’d laugh long enough to hurt his throat, then he’d cry that his throat hurt, and then he’d start smiling and laughing again. He eventually decided that laughing wasn’t worth it, but he wouldn’t give up the smiling. All night long he’d interrupt any of his fits of crying with smiles. He couldn’t eat, couldn’t sleep, but he was still so happy that he couldn’t keep it off his face.

I guess what I’m trying to say is, does anybody know how to convince an infant to stop doing drugs? Because I don’t see how his attitude could come from anything else.

Making Jack-o-Lantern templates

For carving cool Jack-o-Lanterns, the instructions in any pumpkin-carving tool kit will do. The steps of taping the template, dotting the pattern with a toothpick or pin, and the actual cutting are pretty standard. About the only additional tip that I can add is to get a pumpkin-carving kit that includes a scoop/spoon (or use something like an ice cream scoop), because these are awesome for scraping the pumpkin walls to get them thin. The thinner, the better for more complex carvings. (Also, this is a very rare occasion for me not to recommend getting something at the dollar store. The pumpkin carving kits you get there have fat, wide pumpkin saws with sparse teeth, and they’re not very good. A better recommendation is to buy one of the nicer kits on the day after Halloween, when you can find them marked down even more than Halloween candy.)

To make your own template, though, you only need a few of things: A source picture that already has a pretty high contrast, any basic photo editing software that has brightness and contrast controls, and a bit of imagination/artistic enthusiasm … but not much.

This is the picture I chose for this year’s Batman template:

Batman template picture candidate

Batman pictures are generally good, anyway, because they typically have very high contrast and a lot of great shadows. If I’d looked for more than 12 seconds for a source picture, I would have found hundreds more to choose from. These were also contenders, and would have had the advantage that I could have skipped the photo-editing step:

High contrast picture practically ready for carving

After choosing the source picture, open your favorite photo editing software (I like the free Paint.NET software) and play with the contrast and brightness settings. I normally crank the contrast to the very highest level, and then I play with the brightness in the 80% to 100% range. This is what I got out of my source picture:

Editing Contrast and Brightness settings

What you’re looking for is a lot of connected black areas, with enough interesting white areas to be able to make out recognizable details.

With this particular template, this was as far as I actually ended up going. I didn’t need to do any more. I had to make some changes on the fly (like completing the bottom of the chest-symbol oval, connecting the dark area of the mouth to the rest of the dark area, etc.), but I just printed this off and went with it.

What I normally do, however, is print out this picture, place some tracing paper over it, and trace the template out. Along the way, I make sure that all dark areas are in some way connected. Any black areas that are not connected, obviously, will fall out when you carve the white areas around them.

Here’s the Iron Man stencil I used the other year. I ended up only using the top half or so:

Iron Man Jack-o-Lantern pumkin stencil template

Iron Man Jack-o-Lantern stencil template

Anyway, that’s about it. I did the large Batman symbol freestyle at the end, and that’s why it suxx0rz, but it works well enough.

Remember to cut away the small, detailed, delicate parts first, and the big wide cut-aways last. Here are some of my past Jack O’Lanterns from my super hero series. Some are cut in real pumpkins, some are cut in foam pumpkins so I can keep them for a while. (When cutting foam pumpkins, use a very fast sawing motion with the pumpkin saws, and don’t push too hard.)

Batman Jack-o-Lantern pumpkin

Batman Jack-o-Lantern pumpkin

Superman Jack-o-Lantern pumpkin

Superman Jack-o-Lantern pumpkin

Captain America Jack-o-Lantern pumkin

Captain America Jack-o-Lantern pumkin

Spider-Man Jack-o-Lantern pumkin

Spider-Man Jack-o-Lantern pumkin

Iron Man Jack-o-Lantern pumpkin

Iron Man Jack-o-Lantern pumpkin

Micro-entry: Stop hotlinking

Going through my site’s stats the other day, I discovered that somebody had been hotlinking some of my images. I wouldn’t have minded all that much (I have unlimited bandwidth), except it was a picture of my son, and that was just creepy.

I’ve disabled their ability to do this by adding the following lines to the .htaccess file on my server:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?goodideaatthetime.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpe?g|gif|bmp|png)$ http://www.goodideaatthetime.com/images/nohotlinking.jpg [NC,R,L]
</IfModule>

This now displays the following graphic:

For some reason, this makes me very happy.

How to cheat at knitting

I’m now adding Knitting alongside Guitar Playing and Balloon Animal Twisting for things I’ve learned for my son.

Technically, I learned how to knit about five years ago when I stole a knitting book and needles from my mother. (These have not been returned.  She can deal with it.) I got about a dozen rows into a sweater and decided that sweaters were a terrible first project, homespun yarn is a terrible first fiber, and the Xbox has a higher return-on-investment if my investment is only going to last for a few hours.

My opinion on the ROI was reversed, however, when my mother-in-law met her grandson.  She bestowed upon him two of the most gorgeous cardigan sweaters I’ve ever seen in my life.  Gorgeous hand-knit items aren’t really new to me, as literally everybody in my family besides me (before this month) either knits or crochets.  (My dad knits, my brother crochets, and my mother and two sisters do both, though I think they all prefer crochet.) For some reason, these sweaters were what inspired me to finally start creating.

Well, the sweaters and his mobile.  My sister crocheted an incredible mobile for my son.Crocheted by his Auntie Brenda I think I got jealous that he had such amazing hand-crafted gifts from both sides of his family, but nothing from his own mum and dad.

I picked up that same stolen knitting book and those same stolen needles, and started making a baby afghan.  It’s a little ribbed blanket with a simple pattern, and it’s going well … but taking a loooong time.

While I was looking for yarn to use at the Walmart, Gemma saw a Knifty Knitters round loom set. She asked me what it was and how it worked. When I described it to her, she excitedly told me that she’d had a small spool knitting loom as a child, and loved it. Apparently she’d been wanting to knit something for our son, too, but didn’t feel like she could develop the skill to pick up needles and create something.  (She’d gotten as far as casting onto a needle, then knitting one row four or five times before ripping and starting over, and over, and over.)

We bought the looms, and about three hours after we got them home, she’d already completed Devon’s first hat! In the meantime, I’d had about 10 days with his blanket, and it wasn’t even a foot long. Gah!

The next day, Gemma had completed a hat for herself, and was planning other projects. I felt like I was making no progress on my baby blanket, so I went to the store to buy some new yarn, once again stole knitting implements (this time one of her looms) and started a scarf.

It took 10 days, but it’s done and it’s fantastic and I don’t care if it’s cheating. I’ve found some techniques on the Internet and figure that I can get the time on these scarves (even at 8 to 9 feet long) down to three to five days.  Even with an infant, I have plenty of time to work on them while mummy is nursing our son.

I’ll have more pictures of the things I’ve created after Thanksgiving (which is when we’re celebrating half of our Christmas with my family in Utah), after I’ve given them to their intended recipients. The loom is FAST and easy.

Meanwhile, I continue the slow, plodding work on the baby blanket. I hope to be done with it by the time real Christmas rolls along. Although I’m happy with the work that the looms turn out, the items made with needles are the ones that are exciting me. I can’t wait until I’m done with all of the Christmas items, so I can turn my attention to knitting socks in the round using the Magic Loop technique, a new baby blanket for an expecting family member, and eventually sweaters for the whole family.  Just probably without homespun yarn.