Just a place to put together some thoughts on Java, Technology and Other Stuff (tm) that interests me.

Friday, December 14, 2007

Time for a (cool) change

I have had a Linksys WRT54G wireless AP/Router in my network for sometime. When I first put my current server in place I didn't have any wireless gear. That server had a pair of NICs; one for external / internet connectivity, and one for traffic on the internal lan. That server, which is WAY overdue for replacement, has served as just about everything you can think of as a network service: proxy, content filtering (for my kids), web server, mail server, firewall, samba file / print sharing, ldap authentication and authorization, extra workstation in a pinch, etc.

It's time to utilize the equipment a little better. Thanks to my buddy Duke, I have a new(er) box to fill the majority of server roles. Hopefully, even though it has more power (cpu, memory and disk), it will use less power in operation. The diagram below should help to illustrate how things will be after the cutover. Basically, I'll have the server in a DMZ'd subnet, with restricted access to the internal network. The internal wired and wireless LANs will be bridged together into one segment. The WRT54G is running OpenWRT and will serve as the firewall, dns and dhcp server. The DMZ'd server will fill in all the other roles mentioned above. This article on DMZ and
this one on network interfaces were a big help.

Here's the diagram to help clear up any gaps:



Wednesday, November 7, 2007

An overview of my current MythTV infrastructure

I was replying to a friend about my MythTV setup at home and I realized that it's hard to keep things straight. So since he's been putting the details of his system on his blog, I thought I'd do the same.

I have 2 backends, each has 1 tuner. The master backend is running MythDora 4.0 on a Via EPIA SP13000 motherboard with 512M of RAM. The slave backend is also running MythDora 4.0 on a Via M9000 motherboard with 512M of RAM. The slave backend has a 1st generation Air2PC ATSC card in it and picks up whatever signals it can grab off the omin-directional pizza dish antenna from the roof. This includes most of the locals in Pittsburgh now and some of the locals from Youngstown and a few channels from the Johnstown market. (It varies a bit by season and weather it seems.)

The master backend (which has been a bit flaky especially when under very heavy disk i/o loading) has a Hauppauge PVR-250 and is connected to the S-Video output of my DirecTV H20-100 receiver. Amazingly, the H20 sends some sort of signal over that S-Video link even when I'm tuned to an HD channel. I know it's not real HD signal b/c the S-Video specs say that it can't handle that bandwidth. I think what it does is decode the signal and then down convert it to 720 x 480 while keeping the original source aspect ratio.

Both machines above have frontends running and are connected to 32" CRT TVs. The master backend machine connects over S-Video at 800 x 600 to a Samsung that can do 1080i. I'd like to connect to this TV using my master backend's DVI output and connect to the TV's DVI input. But I've never been able to get what the TV considers a valid signal from Xorg and my motherboard chipset. (And the H20's HDMI to DVI cable is plugged in here to boot.) However, I do know that this motherboard, when using it's built-in MPEG2 decoding support, can decode and playback either 720p or 1080i HDTV content and do it with very little CPU effort (maybe 30% max). I've done this with the xine included in MythDora which has support for the Via Unichrome MPEG2 decoder. (I use the following: xine -V xxmc -f )

I also have 2 Ubuntu 7.10 machines that have the frontend software installed. One is a laptop (old 700 mhz PIII Thinkpad T20) so it's like a portable 12" LCD TV. The other is a dual core Pentium machine that's in the office. It has Ubuntu with Compiz-Fusion and a very Mac-like theme and it can also decode HD streams with no effort.

Saturday, November 3, 2007

I don't even use OS X but..

I'm in favor of having a Java 6 JVM on OS X because I don't want to ever have to think about whether some Java program will run correctly on OS X or not. So I support the 13949712720901ForOSX movement!

Friday, September 7, 2007

Truly Green Initiative

So it turns out I'm old enough to have a son who started college this fall as an incoming freshman. Two somewhat unrelated events got me to thinking about a true green initiative.

By 'true' I simply mean that if you look at the entire process or event that it has a net positive effect or outcome. Unlike turning corn into ethanol for example, which, when you take into account the fertilizer to grow it, the fuel to run the farm equipment to plant, tend and harvest it, the amount of energy you can get from it afterwards is less than what you had to put into it's production. See Steve Wozniak's interview for a more thorough example and further background into applying engineering to energy usage and green thinking.

Back to the events. The first thing to happen was that we needed to pick a few things that my son forgot to take to school and in doing so ran across the new Sony electronic book Reader. The second thing to happen was for my son to have the pleasure of spending some of his hard earned summer job funds to purchase his books for the fall. The total for the books wasn't all that much more than what I remember having to spend all those many years ago, but that's not the point.

Why do university professors require students to purchase books at all? Why not have the school inform parents and students of the option of getting their books as electronic books for something like the Sony Reader? Imagine having a single slim device that you could take to every class and have all of your books with you? The cost for the books would/should be lower and there wouldn't be the whole buy-use-sell dance at the beginning of each semester of school. I mean it is the 21st century isn't it? Why, with all the technology we have at our fingertips, do we still insist on kids lugging around paper books when there are alternatives that make more sense?

Just a thought. Probably too much money being made to have it change any time soon, but you'd think all the 'environmentalist/activist' university professor could get behind something like this, wouldn't you?

Tuesday, July 31, 2007

Nothing new until we finish making what we have now work..

I'm going to make a proposal for all new cool ideas in information technology to be put on hold until we can finish making all the existing half implemented cool ideas work correctly.

Enough said.

Monday, June 11, 2007

JavaFX morph example code

Here is a quick JavaFX program? script? that demonstrates the morph animation ability in the latest version of JavaFX (I snagged a version from June 1st). In any case here is the code:

/*
* This file is created with Netbeans 6 Plug-In for JavaFX
*/
import javafx.ui.*;
import javafx.ui.canvas.*;
import javafx.ui.filter.*;

var win = Frame {
width: 600
height: 400
content: Canvas {
content:
Morph {

morph: bind [0,.01..1] dur 2500

fill: blue

start: Rect {
x: 10
y: 10
width: 460
height: 140
}

end: Circle {cx: 200, cy: 200, radius: 100}
}

}
visible: true
};

This code should draw a blue-filled rectangle and then morph it into a blue circle taking 2.5 seconds to do it. Pretty simple and slick, although a rather trivial effect.

Monday, May 21, 2007

Some really quick Groovy code to test for a prime..

One of my kids had a homework assignment where they had to determine whether a given number was a prime number or not. They are pretty sharp kids and so they really didn't have a need for a programmatic answer but I decided to query my oldest son. He gave me a solution off-the-cuff but it wasn't complete so I wrote something simple in Groovy just to show to my one of other kids who was working on the homework assignment:


#!/usr/bin/env groovy

print "\nYou want to know if ${args[0]} is prime? Let me think..."

n = Integer.parseInt(args[0]);
d = 2;
lim = Math.round(n / 2);

while (d < lim) {
if (n % d == 0) {
println "\nNope ${n} is evenly divisible by ${d}.";
System.exit(0);
}

d++;

if (d % 10 == 0) {
print ".";
}
}
println "\nYep! ${n} is a prime number!";

System.exit(0);

Wednesday, April 25, 2007

It's working! It's working!

That line from Star Wars episode 1 always killed me when young Anakin Skywalker fires up the engines on the pod racer.

I'm using the Open ESB + Glassfish + Netbeans 6 installation jar from the Open ESB home page and I'm making progress. I still don't have my Hello JBI World program running, but I'm gaining confidence that I can get there with these tools.

Yesterday I started following this tutorial from the Netbeans wiki. It's titled: "A complete SOA Application with NetBeans 5.5: from Web Services creation to BPEL Orchestration" and so far I've been able to follow along and do the steps outlined even though some the functionality is slightly different from the Netbeans 5.5 stuff that the tutorial is based upon.

Friday, April 20, 2007

Open ESB + Addons + Netbeans 6

So I installed the Open ESB bundle described in my last previous post. Got it up and running and it seems to have what I'll need. I was able to start the Glassfish server with the JBI engine and see a nice list of BC's and SE's. As this is pre-release software there are some glitches Netbeans 6 when it starts up, but I just ignore them for now as I want to focus on the task at hand.

I created a new SE component using the JBI SE type wizard. Builds just fine, but when I attempt to invoke the install operation I get an error as documented here.

One of the other guys in my team is working up a ServiceMix example and I hope to be able to both talk with his instance from my Open ESB instance and to run his stuff in Open ESB to test the portability of Service Units and Service Assemblies.

Thursday, April 12, 2007

OpenESB with Netbeans 5.5; not so much..

So it turns out that didn't work too well. There is a set of plugins that will install and give you some ability to create either JBI Service Engines or Binding Components, but I wasn't able to deploy them to my Sun AppServer v9 server instance.

I went after the latest Netbeans 6 milestone build (M8) which is supposed to have this stuff in the Enterprise Pack, but that didn't seem to work all that well either. Finally, I went to the open-esb website and found this link to a ginormous jar that has Netbeans 6 and all the latest Open ESB bits in one installer and it seems to work together. Now to create that HelloWorld SE and BC and get them running.

Monday, April 9, 2007

JBI Hello World howto

So I wanted to write a Hello World example using either Open ESB or ServiceMix. ServiceMix provides some tutorials on how to do this with maven, but the tutorials seem to hide too many of the details and that doesn't suit my needs. I think I'll try to do this with the tooling for Open ESB and the Netbeans 5.5 IDE.