I’ve always wanted a real home theater

Preface: This isn’t a #humblebrag. All my life I’ve been a *huge* movie buff. Add to that, from an early age I was a spectator to motorsport, and later in life became a participant. Oh, and I’m a gamer. Beyond that, hey, I’m a geek … and there’s geek stuff involved in building out your own home theater.

For the last 17 years, I’ve always had some version of a “big TV” in the livingroom with a stereo hooked to it. When the first-gen HD TVs came out, this involved a 65″, 450lbs rear-projector behemoth from Mitsubishi capable of 720p and 1080i.

My wife and I have a (by US standards) moderate home. By which I mean it’s stupidly large for two people, with a lot of square footage that never gets used. Quite frankly, I bought the smallest home I could find with a 3-car garage. This is due to the aforementioned interest / participation in motorsport. Remarkably, they don’t build small homes with 3-car garages (and we didn’t have an interest in buying land and having something built).

The front portion of the house is designed to be a formal living room and dining area. It has a 20′ vaulted ceiling, with the lower half open the to back of the house (sort of, there’s a half wall divider). This is a common thing with “open floor plan” homes these days. For the last 6 years it has collected dust. The oversized kitchen has a dinning area attached, and we have a table there. In addition, there’s a large family room which we normally use.

When it came time to replace flooring (the house was 10 years old and the original cheap builder carpet was trashed) I decided the front of the house could actually be useful … if I turned it into a home theater.

There was some initial pushback from the wife. Where the definition of “pushback” involves a bunch of profanity and several discussions about what your house should look like.

In the end, I won. For the most part, this is because I went full-monty and built out a system that is clean and unobtrusive.

What the room Looks like:

IMG_20140419_162658

The screen is a pull-down over the front windows. It can be raised if having people over that doesn’t involve media. I plan to build a valance to cover the unit so it’s completely hidden when pulled up. (The center channel is still sitting on a box, I realize. It’s going to be wall-mounted or put on a little free standing shelf.)

Those are old-school DCM home theater speakers I bought in the ’90s. In time I’ll replace them, but they are still well regarded.

There’s no visible wires or electronics because everything is run from the basement:

IMG_20140419_162716

The projector is mounted on the upper wall which is the back of the master bedroom (obviously I still need to tidy up the wiring; I forgot to buy an outlet cover. P.S. running power and HDMI from the basement up an HVAC column sucks) :

IMG_20140419_162853

With a 25U rack in the basement containing everything, including my Wintendo (that’s a Windows PC used for the only thing it’s good for (gaming) for those who don’t get the meme) gaming rig in a 4U case in the bottom:

IMG_20140419_162757

The gaming rig input is via more in-wall wiring which not only provides a USB port that runs to the rig, but also has an RCA out for the subwoofer and HDMI input + network for a gaming console:

IMG_20140419_174539

For TV, I have DISH. Their units use a UHF remote. The Yamaha receiver is network enabled with an Android and iOS app for control. This means no need for IR repeaters.

It was a lot of work, a lot of fiberglass insulation stuck in my arms, and a bit of money … but in the end, I couldn’t be happier. Much more important, Laura actually likes it 🙂

Watching movies, F1 / MotoGP, and gaming on a 120″ screen? Pure bliss. It’s something I’ve always wanted, and now it’s a reality.

Tech Specs:

Projector: Epson 8350

I went with this unit because it’s pretty much the best you can buy for gaming (low input latency) and for a room than has high ambient light.

Receiver: Yamaha RX-A730

Mid-level unit in their current lineup, but it did everything I wanted including being controlled via network.

Speakers: DCM TimeFrame v6.0

These were high-end in the late 90s, still well regarded today for their ability to accurately reproduce sound.

Subwoofer is a 400W 14″ Klipsch downfire. It rattles your teeth 😀

Cabling: Monoprice (HDMI with RedMere)

Long runs for HDMI and USB require active cables. I went with Monoprice cables for both. The HDMI cables are their RedMere tech and they work perfectly. There’s a 60′ running from the projector down to the rack, and a 30′ for the HDMI input to the wall for plugging in a console. THeir active USB cable runs from the wall to the rack for the gaming PC.

Flawed Dogs (Rupert)

(Work / Other stuff has kept me from actually keeping up with this blogging thing re: technical stuff, but this is really important to me)

Rewind to six months ago; June, 2013. I wrote a post on facebook about a dog, which I’d like to share here, then provide an update.

June 9, 2013: We decided to Dober-sit this weekend for a foster-parent.

This is Rupert:

rupert_06.2013_1

Rupert is scared of his own shadow. This is Rupert’s kennel:

rupert_06.2013_2

It’s the only place in the world where he feels safe. He won’t come out, even for food. Walking him involves hooking up the leash and coaxing him to go outside, but it’s a struggle.

Rupert is in foster care because after escaping from wherever he was, he was hit by a car. He wound up in the Adams Country shelter where thankfully they found a vet to repair his broken pelvis.

He’s especially scared of men; at his current foster home if the husband comes near him he will urinate in fear. At this point if someone was not willing to take over fostering him he’d be put to sleep. He is basically unadoptable; no one wants a broken dog.

 A human being did this to him.

He wasn’t scared of the world at birth. He wasn’t afraid to make eye contact with you. He wasn’t afraid to get up and walk around.  It’s because a human being did this to him.

I can’t make you understand how angry this makes me. I’m hoping this post even begins to come close. I’m also hoping it makes you reconsider pre-conceived notions and biases when it comes to dogs, and especially certain breeds of dogs.

It could be my deep seated resentment of most of the human race. Maybe deep down inside I’m really a sentimental sap. But this dog didn’t deserve this. He didn’t deserve some human making his life a living hell to where he literally can not cope with his environment.

Most people do not have the time to work with a dog like this, and rehabilitate them.

I do.

We’re applying to take over foster care, and I will be spending time every day with Rupert. Because that’s the very least the poor animal deserves. WIth constant work over months I believe this human can help undo what another human did to him. And it’s going to be daily work to try to undo it.

So the next time someone says “Oh those Pit Bulls are vicious”, or “Those Rottweilers are vicious”, or “Those Dobermans are vicious”, or anything about how a dog behaves, I want you to take a good hard look at Rupert.

And the next time you think about owning a dog, or if you currently own a dog, I want you to take a good hard look at Rupert.

We humans determine how these dogs behave and act, regardless of breed. We humans are everything to them; their friends, their companions, their care givers.

My wife and I fell in love with Dobermans; we have two. They are the most loyal, goofy, loving dogs you could ever want. And that’s because we raised them with kindness, and respect, and positive re-enforcement. The second (Isabelle) we rescued from the same shelter Rupert found himself in. Because no one else would.

Rupert will probably never be that dog you take to the dog park, or one that’s comfortable having a small child come running at him, screaming, and wanting to pull his ears. But I do believe he can be a dog that is comfortable in his home, happy, and not terrified of humans.

If you’re single (or even married with no kids), and a dog lover … maybe think of adopting one of these dogs? It’s going to be a long process, and frustrating, and make you question your wanting to do so … but in the end? You’ll save a life. And I guarantee you it will be a rewarding experience.

—————————————

Dec. 15th, 2013: We’ve had Rupert for 6 months.

That’s him, hanging out with me on the chair here in the livingroom.  Sorry for the dark picture, trying to avoid laser eyes.

rupert

This has been 6 months of working with him, constantly. Progression and setbacks. He’s pretty much a normal dog around Laura, but his fear of men is still a big issue for him and me. Laura’s out of town for work so the fact that he’s decided to hang out with me rather than hide somewhere is a huge deal (he was hiding in the bedroom but our friend Shelly came over and was able to get him to come out, after she left he seemed to snap out of his shutdown mode).

I figured at the very least it was going to be 6 months before we saw anything remotely related to a normal dog. He’s still very fearful, and still has a ways to go, but you can tell he’s really trying.  That should really tell you a lot about dogs. Or at least, this particular dog.So once again, I’m going to mention:

So in this world
Of the simple and odd,
The bent and plain,
The unbalanced bod,
The imperfect people
And differently pawed,
Some live without love…
That’s how they’re flawed.

— Berkeley Breathed. Flawed Dogs.

If you want a dog, go adopt one. Save a life.  If you’re capable, rescue one that no one else can. 

 

Building a better mousetrap; client development with Netty 4.

Many developers these days don’t have to write a client library/driver from scratch or ever have to Just Open A Socket. Normally, they’re going to use an HTTP client or a driver/library provided by the database/whatever. I happen to be the exception; my job at the moment revolves entirely around creating those drivers for Riak.

I’m probably the Worst Java Guy Evar in that … I’m not a Java guy. At least, not what you think of when you hear “Java guy”. I’m a polyglot forged with C who happened to have fallen into doing some Java dev once and then at Basho became … the Java guy.  In short, I’m not a big fan of including a giant framework in a project to do some stupid simple task. Or shoehorning problems into design patterns because … reasons. I also have a tendency to want to hit something every time I hear the word “Spring”.

That said, when designing the new Java client for Riak, rather than writing the networky bits myself I thought maybe I’d take a look at Netty. I’d heard good things about it and thought maybe it’d be a good fit if wasn’t overly cumbersome. We (Basho) also had some customer interest in providing async query functionality in the client which I knew Netty could provide.  In addition … lets face it, there’s nothing enjoyable about writing socket code for the umpteenth time.

After playing with the Netty 4 for a bit I decided on using it for the new Riak client. Not only did it provide what we needed, I found Norman Maurer at Redhat to be incredibly helpful and a real advocate for what they were developing.

The internals of the new Riak Java client effectively will model a Riak cluster, providing load balancing and fail-over support. It also allows for both synchronous and asynchronous operations. The higher level client API will submit tasks to it and receive the replies.

RJC2

 

Over the next couple weeks I’ll be posting a series of articles talking about how to use Netty to build a network client library. First one coming soon.

 

Is this thing on?

I’ve never had a blog.

For the most part, I think it was due to me really not believing that I had much to say that other people outside of my friends would be interested in reading. And quite frankly, social media Facebook, twitter, etc) fits that bill nicely.

I don’t honestly know that in reality that’s not the case. My belief has somewhat shifted though, in that occasionally I have something to say (mostly about technical stuff) that I think could be useful outside my personal social bubble.

Thus, I finally have a blog.

I’ve added a About Me page that pretty much covers the basics, check it out if you are interested.