This is dedicated to all the hackers and the crackers, to the hackers and the crackers.
I see in binary, I speak source code, step on my toes, I'll post a million jpegs of you
and a fag pwned, in your digital stance getting firewalled ho, cause I'm riding the net in
my six-fold, I was a dick with my 56, now with my cable I'm able to get that stable,
on the out, my name is Ace and I'm a Leo, on the digital highway, my name is Neo and
I'm a hero, in a flash, I'll screw you on burning dreamcast, you need some ISO, let me through
my hard drive rifle, our exchange you could never stifle, in a digital hug, you just caught
the love bug, I bootlegged your CD, I caused a fight between Un and Jay-Z, your CG, it's
all gonna be free, whether we take it by force or we take it nicely, you feel that rattling
your phones, when I tell you we just hacked out Jones, and NASDAQ leaves you flat on your
back, cause I am he who loves to hack and crack, cause I am he who loves to hack and crack.
This is dedicated to the hackers and the crackers, serial codes, source codes, ISOs, RANs, SIFs,
SIFs, this is dedicated to the hackers and the crack.
What?
I said I'm ready, but I won't compete, you're new, you don't know it, so just go away.
What is that, what is that from?
It's, uh, you ever seen the DMC, uh, turntable championships?
Um, I've heard of them, I've never seen them.
Ah, well, in any case, one of the guys, when he won, um, or not when he won, they did this
summit where they had all the guys who had won for like the past seven years, and his,
uh, his bid was cutting up, uh, Gangstar and something else, but he said I'm ready, but I
won't compete. I forget the two songs that it's from, but I'll find it for you.
Oh, hells yeah. Gotta go back to some Gangstar.
Yo, it's Leet.
And welcome everybody to the Leetest episode of Binary Revolution Radio, episode number
192. And if you didn't recognize our opening voice this week, that of course was our good
friend, Not Theory, returning to the show.
God, you were recording already? I feel so violated.
Well, I didn't record that other stuff we were talking about, you know.
Oh, that's the stuff I wanted people to know about.
Well, that might end up on the outtakes, we'll see.
Word.
But, uh, let's see, 192, I already said that, today is, uh, April 17th, 2007.
Uh, I am Diggy, back with you once again. That's gonna be, I'm gonna change my name every week
to something like Buff Daddy. So this week I'm Diggy, next week I'll be Doogie, then I'll
be, I don't know, I'll figure it out.
By then...
You'll be Dougie, like Dougie Fresh.
By then it'll be time to bring back, um, Buck Dangler anyway, so, whatever.
Bow, chicka, bow, bow.
Alright, housekeeping section this week, um, I don't, I got nothing. I got nothing. You
got any kind of housekeeping for, um, for Bell's Mind, or should we wait until later on in
the program for that?
We will wait as there is a tie-in to the subject of the whole show.
A segue, if you will.
Segue!
All right, so, boy, that's a throwback to episode, like, what? Actually, I think that
goes back to RFA days.
Yeah, I'm pretty sure it was RFA.
Yeah, wow, boy, that's a long time ago. I still don't have a segue. How much are those
things now?
I think, had it really gotten down all that much? I didn't think so.
I don't know.
I can look it up while you're, uh, drinking my sweet iced tea. And taking us into the email.
And we are back from, uh, to do some email. And I guess we'll start off, let's see, what order
should I do the email in? Okay, I'm going to start off with this first email from Zelle.
Unless you actually already have the price up there by now.
Uh, I'm getting there.
All right.
Oh, these guys are in...
You fail at the interweb.
I did fail at the interweb. Oh, these guys are selling the new Segway. Oh, shit. I've never
seen it before.
What's the difference between the new Segway and the old Segway?
It has cooler wheels on it.
Is it turbo or something?
No, I think it's like, uh, yeah, it's all-terrain. That's what it is.
Nice. You know, I want to Segway. I want to Segway.
I have a lot of different versions of this thing.
I want to Segway with hydraulics.
Oh, yeah.
Yeah, baby. I'll be like, boom.
I'll be bouncing along left to right. Boom.
Pimped out.
Tricked my Segway out.
All right. Well, first email this week comes from Zell.
Zell says,
While I cannot think of any way to try and increase your bandwidth on an internet connection with
six different adapters, I do know that NVIDIA's newest motherboard makes it possible to do
so with two Ethernet cards. In the NVIDIA N4 6000 motherboard, you can cheaply do that.
And he's got a URL here, but it's NVIDIA.com. You guys can find that pretty easily.
The NVIDIA 600 series, they call it, quote, dual net, a.k.a. really cheap way to add another
pipe without getting some insane $10 billion Cisco 8000 series router. I'm not sure if this
would work with two wireless adapters, but it definitely is a cheaper option to get more
bandwidth and redundancy. Cool stuff.
P.S. Your show owns. I say that you and RBCP from phonelosers.org get together and make
a crazy awesome freaking podcast. Well, um, what do you think about that?
A crazy awesome freaking podcast. Well, um, I know that you're not really too much of a
freak, and despite what some people who know me might think, I'm not much one of, not much
of one either, so.
Aren't you the, what about the whole, despite what you think freaking is not dead thing?
Freaking might not be dead, but I don't really know shit about it.
You're supposed to be the savior of freaking. What are you talking about?
Oh, come on, come on. I have a crappy website that has a bunch of phone information on it.
So you're, you've got a database of phone and freaking information.
Yeah, the whole, I'll go into the history of Bell's Mind at some point, but basically,
um, I did Bell's Mind kind of as a favor to everybody in the, in the scene who was into
freaking, uh, back in the day. And I've been maintaining it ever since. I've loved stuff
about freaking, but I wouldn't consider myself, you know, master, super leader, a freak or
anything.
Was this back in the days when we were young, not a kid anymore?
Sometimes I wish something, I don't know.
Oh, yes, I owed you on the air. Yes, I got one by you. All right.
Oh, some days I sit and wish I was a kid again. You don't remember? Anyway, uh, what'd you
find out on the Segway?
Nothing. They don't have prices online. You got to call them for a quote.
Damn, that means they're expensive, but they can't even put a price online?
Yeah, that's why.
Did you try eBay?
Uh, eBay's, eBay's got them, but I didn't know that we were going to go for, uh...
Well, how much can I get, like, a ghetto used, um, you know, used by a little old lady who
Segwayed to the grocery store once every two weeks or bingo or something?
Oh, you want a Seg Hooptie, something that's just jacked up.
That's right.
Hooptie rolling, muffler dragging.
All righty, all righty, let's see.
Suspension.
They don't have a buy-in-out. They just, they all, they're up for bidding, but they have
no buy-in-out price, and none of them are close to, uh, the finish.
Damn, the internet is not cooperating with our research here.
Nah, the closest one I see is at, like, almost $1,700, but there's a day left to go.
$1,700, and there's a day left to go. Hmm.
Oh, man, that could go anywhere within 24 hours.
Would you buy one? Would you buy one? How much would you be willing to pay for a Segway?
Um...
Would you pay $1,700?
I would say somewhere in the neighborhood of zero.
You wouldn't have one?
I would, you know, give or take, um...
You know, zero.
Hmm.
No, you know what? I saw, I was in D.C. recently, and I saw people riding around on them, and
I don't know, they look kind of cool, but if it was one of the cool, like, all-terrain
ones, uh, yeah, I would spend maybe $1,700 on it, I guess. Why not?
Yeah, but if it was all-terrain, it would kind of defeat the point to be riding it around
D.C. You need to take that shot up and...
No, no, no, I'm saying that's where I saw it, and it was cool, but I would want the all-terrain
one so that I could go and own noobs with it.
Pwned noobs.
Yeah.
Huh.
That's what it's all about.
Pwned noobs?
Yeah.
Can you look cool on a Segway, though, honestly?
Um...
Does it, do you look like when you're, is it kind of like riding a moped? Do you look
like really kind of lame when you're riding a Segway?
I guess. The cops in D.C. don't really look lame because they have guns and they'll just
kill you.
Well, yeah, well, that helps, but what about the ordinary people?
Oh, yeah, they look like morons because they've got to wear helmets and there's all this safety
equipment and nonsense. They look totally ridiculous.
You have to wear a helmet with us? Is that a law?
Not a law, but this rental place that these people were touring with, they had to wear a helmet.
Yeah, that's probably liability insurance thing, huh?
Yeah.
If I got one, I'd wear a helmet and I'd wear, like, goggles and I'd put a scarf around my
neck and I'd, like, starch it so that it looks like I'm going really fast all the time.
And I'd wear, like, a cape in some shit and I'd put a big wire in it so that it looks like
I'm flying along at full blast.
Wow, you really have serious issues.
It'd be pretty cool, though, but you need to have sound effects with it, too, so it sounded
good, like, doing all of that.
Well, don't these things have, like, sound systems and whatnot in them?
I could play sound effects.
All right.
I don't know.
You know, I'm not really as much of an expert on segues as you'd think.
Like, either one of us know jack shit.
I don't even know if I could spell segway.
All right.
I can tackle that off.
Well, now we totally ruined Zell's email here.
Let me get back on task here.
Have we been drinking or something before the show?
No, I've had, like, 28 cups of tea, but they're all decaffeinated, so it doesn't really explain
it.
Okay, mine aren't decaffeinated, so.
I've already had a pretty good glass of tea since we've been started.
It's only 10 minutes into the show, if that.
All right, anyway, yeah, one, I am not a freak, of course, so me on a freaking podcast would
be pretty freaking pointless.
Oh, that was such a bad pun and so accidental.
Why would you even bother to make that joke?
I did not do it intentionally.
I really didn't.
I said freaking because I didn't want to say fucking because people bitch about me cussing
on the show.
So then when I tried to catch myself and say freaking, it came across as a horrible, like,
that's almost, I think that is almost as bad as a black ratchet joke, but not quite.
Not quite.
So anyway, one, not a freak, and two, I'm not sure, Giselle, if you know this already, but
the PLA guys, they already have their own show, so go over there and check that out.
I don't know that it's really freaking so much as fucking with people, but it's funny, so go
check that out.
And yeah, RBCP and I don't really know each other at all, so that's probably not going to
happen.
But, on to the motherboard and the topic from last week, and I don't know if you heard
last week's show yet, or ever, but last week somebody had written in asking about sharing
network capabilities and whatnot, so these people are replying to it.
He's saying about that there is a motherboard that you can buy to do it.
Now, that's fine that maybe technically the motherboard can support it.
It's got the dual net or whatever this thing is called.
That's fine from a technical standpoint, I guess.
But logically, I don't see where you would ever really apply these, especially in a home
environment.
I mean, this particular motherboard, I did look it up.
It's some kind of gaming motherboard.
It's a high-end.
I think it's a little under 200 bucks.
It's a gaming motherboard.
And I don't know, for you to have two Ethernet connections coming in, where are they going
to be coming from?
I mean, you've got to have two connections of some kind, two different cable modems, two
DSL lines coming in.
Well, I mean, if you have two different cable modems, you're still on the same cable network.
If you have two DSL lines, then maybe that'll work for you, but it seems kind of pointless
to me.
Well, that's just it.
If you're going to have two cable modems, they have to be independent of each other, and
you're going to pay for two different connections, and the cable company has to throttle two different
pipes into your home, and I don't know what you would gain out of that.
I mean, at least, I don't know, I guess it depends on the cable company.
My cable company, which actually, as far as the Internet goes, is Roadrunner, I think,
is outsourced to them.
They offer like three or four different levels.
So instead of adding a second level of it, I would just upgrade to the nine or 12 megabit
per second connection instead of trying to double up on two fives or something like that.
So logically, it doesn't make much sense to me.
Same thing with the DSL.
You'd have to pay for two different DSL lines.
I mean, the money that you're spending there, it's not free.
I mean, so the money you're spending there, I don't see where financially you'd get much
benefit.
If you need that much bandwidth for whatever you're doing, particularly for the upload,
and most of those are download-only speeds, remember, so I don't know what you'd gain
out of that.
If you need that much bandwidth at home, then you should be looking to co-locate a box somewhere
or get a dedicated server in a data center somewhere.
Can I get an amen?
Yeah, I would tend to think so.
And without proper routing support on the ISP side, it's not going to do you much good
anyway.
Like all the fancy stuff you'd want to do involving having multiple network cards and
all that, you're just not going to be able to do.
Yeah, well, that's just it.
It's really not something that can be done easily, we'll say, even remotely easily.
And actually, I think this is a good segue into our next email from RHNNet.
RHNNet says, hey, StankDog and Not Theory, I've been listening to the show for a long time
and really enjoyed it.
Keep up the great work.
On episode 191, Stank talked about using multiple network connections to acquire more bandwidth.
This is definitely possible if one is connecting multiple times to the same network, although
a connection does not automagically go over both.
However, if you have a switch or Linux box on both ends that supports trunking, then you
can.
Some useful sites are, and he gives a tiny URL, to BMWWO and tinyurl29NNRW.
I do this on my Gen 2 boxes and it works great.
iPod and Astro support soon.
Now, for multiple internet connections, i.e.
multiple gateways, it can be done, although you cannot have two 5 megabit per second pipes
and expect to download at 10 megabits per second.
Rather, two 5 megabit per second downloads, although downloading two parts of the file at
once would work.
Some good places to start are tinyurl2ad3ow and tinyurl2ho4v6.
Thanks for the show.
That was RHNNet.
Now, I think I fumbled through that email, but I think he was kind of alluding to what
you were saying as far as you having to have the right equipment and the switching backbone
behind there to make sure that it's handling the traffic the way you want it to.
And since a home user, most of that stuff is out of your hands and out of your area of
control.
Yeah, so I don't know how that gaming motherboard really does anything exciting with Dual Mix.
Yeah, I don't, the only thing I can think is one going out to your internet connection
and the other one going to some sort of internal network of some kind, but of course you're
not, that's not affecting your bandwidth.
I mean, I don't get that, I don't see what that motherboard's for either, truthfully.
I don't know, maybe somebody will write in and tell us.
I'm sure they will.
And we'll see if they're stupid.
Well, I think we might get a lot of email for this show because when we go into our topic
later on, we're going to probably prove our ignorance on us something, but we'll see.
Oh, and also this, from RHNNet, he had a very clever email introduction, so I do appreciate
that.
That was not lost on me.
Some PHP code in there to kind of dynamically assign the users, so that was kind of cool.
And hopefully these links that he sent are interesting, but again, it's a lot of work
for something that's just going to have so many problems along the way, and even if you
got it working, the cost of what it is, I don't see it happening.
Home user, not really.
The businesses, yeah, they can financially justify it somehow, but a home user, not so
much.
And our last email this week comes from Stack Smasher.
I read this email on the show last week, however, I thought that considering my present
company, that I could read this again on the email this week and let him respond to it.
Stack Smasher said last week, any word on when, if ever, www.freakfactor.net will be back.
Thanks, and as always, keep up the good work.
So, yeah, give me the opportunity now to read it again and pose the question to you, not
theory, when will Freak Factor, not just the website, www.net, but when will Freak
Factor the show, the Freak Factor, the experience, when will it all be back?
I don't know.
To tell you the truth, I've never heard of it, so I'm reading their website now.
I don't know.
Aboutus.org?
Well, hey, Freak Factor.net, it has been up for a long time, and as you can tell, it
hasn't really changed pretty much ever.
We can't?
Actually, no, that's not true.
I changed the phone number at some point.
True, yep.
When the Bell's Mind number changed.
That was it.
But, okay, Freak Factor is on its way.
I've said that before, and I know I've said that I've said that before.
And we've said that before on your behalf, because you told us to say that it was coming.
Yeah.
Well, in my defense, it still is coming.
It's just not there yet.
Well.
There have been significant updates and some serious progress towards getting Freak Factor
running.
Freak Factor, when the show is actually live, is going to be done through the Bell's Mind
webpage for technical reasons that I'll explain later.
But, I don't know, I've had a lot of free time lately, so I figured that I would spend it
working on that.
What's that?
You can actually see some of the progress that has been made towards it and get kind of
a feel as to how it's going to look by going onto the Bell's Mind website, going to the
NPA NXX search, and if you have a Bell's Mind account, logging in and checking out, there's
a tab that will pop up that says PBX status.
And the new Freak Factor is going to be using the same type of, like, Ajax, refreshing, fancy
nonsense that you see on that page.
If you don't have an account, you can't check it out.
It's too bad.
But, I'm working on getting the registration up and running.
Registration between Freak Factor and Bell's Mind will be shared.
So, if you have a Bell's Mind account, it'll be also your Freak Factor account.
So, when you log in, you'll see your Freak Factor credentials, and then you can call it
DBX and get it all together.
It'll be kind of like DDP's own little Passport, because everybody loves Passport.
Single sign-on.
Yeah, single sign-on.
And, you know, we'll later integrate it with Passport and Google and Yahoo.
So, we only need one Passport.
And the forums.
And the forums, of course.
Of course.
So, yeah, that's about it.
I can't, you know, I would love to get a date, but I'm done with trying to say, oh, it'll be
done in three weeks or something like that.
If you want to know when it's going to be done, basically, go to Bell's Mind, watch the
progress that's being made on the PBX status page, and eventually there will be a, you know,
a silly little blog posting, because everybody loves blogs, explaining when Freak Factor's
almost done.
And I'm going to probably ask a few people to help me test it out.
So, once it gets around that time, I will pick a few people to help us out, and we'll
get to testing it and see how it works.
But, I don't know.
As of right now, it's close, but not close enough to get a date.
Very nice.
Very nice, I like.
Wow are you, huh?
All right, well, I've been playing around and testing it.
I think it's pretty cool.
Let's just make it happen.
I'm trying.
I'm just going in.
As far as the, and what is this free time of which you speak?
I'm not familiar with this term.
Ah, well, you have free time, don't you?
Come on.
This is it.
Recording this show is my free time.
Oh, wow.
Well, um.
And it's why there wasn't a show there for the last two or three weeks, because I
didn't have any free time.
Well, I've got to tell you, I quit my job in December, and I haven't really looked back.
Nice.
How's that feel?
Um, it's pretty much the best feeling I've ever had in my entire life.
I'm having nothing.
However, you still force yourself to work 20 hours a day.
Somehow.
Ah, you know, I keep myself busy.
There you go.
But hey, a lot of it, a lot of it's all tied in.
It's all entangled together.
Well, and, and, yeah, actually, we, we've, this is something you and I talk about all
the time anyway, about, you know, for example, I, I hate learning a new language or, or doing
something where I have to do hello world type applications and bullshit like that and fucking
towers of Hanoi and, and this other crap.
I'd rather jump into something and start doing it and learning it and actually building an
application or something useful with that technology.
And even if I'm not building something specifically like a project of some kind, I'm working on
code and I'm thinking of how I can apply it, how, try to write the code in such a way
to be reusable so that we can use it for other projects.
So that's kind of a good segue, I guess, because you mentioned earlier about changing
in, uh, the change in technology over on Bell's Mind and some of the stuff that you're
doing, which will segue into our topic this week.
Does it not?
Um, possibly.
I'm afraid I'm just going to get a lot of hate mail, um, for my choice.
Actually, if people have checked out the, uh, the Bell's Mind blog, um, they've probably
seen that there's been a change from PHP.
Um, there is no more PHP code running Bell's Mind site.
I don't know if people are going to be upset about that or not, but there are very good
reasons behind it.
Well, if it's not running PHP, what is it running?
Well, it's not running PHP, of course.
Like you just said, it's not running Ruby on Rails because we've already been through that
and, but he's told me I'm a moron and the Ruby on Rails is the greatest thing ever, but
I still say that they're wrong.
Well, the only other option that comes to mind is that very topic that you hate so much
and you've spoken about on the show for years that you despise, so I know it couldn't possibly
be anything Java related, could it?
No, no, I don't really think so.
As a matter of fact, now that you've said that, I don't even remember what language the
site's running, so I'd rather just not talk about it.
Okay, well, this week's show was brought to you by...
Oh, no, of course, that unfortunately has become the fact of the matter, isn't it?
That you are incorporating some Java.
Well, now, see, actually, here's the thing.
Here's what I want to talk about on the show tonight.
Because I hate, well, yeah, I don't really care for Java too much, mostly because I find
the whole Java world, the whole Java environment, not technical environment, the whole Java sphere,
I don't know, to be insanely confusing.
And the whole write-once-run-anywhere thing, I think, is such a joke, such an absolute misnomer.
I don't know, I'm not, I still don't get Java.
I see some of the applications of it on a case-by-case basis, but I still get confused as hell by Java.
Now that you have been playing around with some of this stuff lately, are you feeling more comfortable
with Java on a serious...
I'm feeling more comfortable with programming in Java, but if you ask me the difference
between any version of Java and any other version, I would tell you that I have no idea.
And I probably won't have any idea, because I've been doing Java programming, and I haven't
needed to know the difference.
So when I need to know the difference, I'll learn it.
But until then, I don't care.
Well, and that's kind of my experience as well.
I, for those who don't know, I do a lot of my programming, I do database programming, mostly
in Oracle.
And I know that Oracle is getting more and more tied in with Java.
They've already got a very strong relationship, we'll say, with Sun.
I don't know why they haven't bought Sun Microsystems by now.
But anyway, the stock is like seven cents a share or something, I think.
Like, it's like, it's such garbage right now, but...
And it's still not even worth buying.
Yeah.
No, it is, I think it is around, it's still less than $3 a share, isn't it?
Or somewhere around $3 a share.
I don't know.
I haven't checked in a while.
I'm not really a Sun fan, so I don't know.
Yeah, so...
That'll be accurate.
Anyway, yeah, Sun co-op...
Oracle, I should say, cooperates very well with Sun, but Oracle is slowly adding a lot
of support for Java into its database engine.
You know, when the next version comes out, it's supposed to be supporting actually native
Java code internal to Oracle, not separate programs that you execute through the operating
system, through Solaris or through whatever, you know, whatever operating system, because
Oracle also runs on Red Hat and all kinds of other Linux flavors, etc., etc.
But actually, internal support, they're calling them an unfortunate name, in my opinion, JSP,
or Java stored procedures.
Yeah.
So, yeah, we'll kind of back off that and come a little bit later to why that's an unfortunate
name, in my opinion.
But, but it's like within the context of programming something in Oracle, I can see the application
of the language.
What I don't see is why they chose Oracle and not one of any other number of languages that
they could have done the same thing with.
So, I don't know, it's, it's still a little, it's kind of like if you, oh, what's a good
example?
Like if you, what was it, wasn't, weren't people writing, didn't Quake or something come with
its own internal language, some kind of C derivative where you could actually write and code your
own maps and mods for the game?
Yeah, they had QuakeC.
Yeah, QuakeC.
So, it's a language that's designed to work with that specific application.
So, I understand within that context a reason to learn QuakeC.
But outside of that context, I still don't see the point of using it.
Now, QuakeC is an obvious example, but I feel the same way about Java.
And when I say Java, I'm talking about the whole of all the different Javas and stuff like
that.
When we talk about individual applications of Java, that's where it gets a little, a
little messy.
So, I'm not even really sure where to start with this topic, to be honest with you.
I mean, we can do the...
I guess I'll first explain, like, how I decided one day that Java wasn't a piece of garbage.
And maybe I'll even, let's go back even further than that, why I initially thought Java was
a piece of garbage.
Actually...
I think the feds are outside your door.
I hear them coming, driving up.
Oh, no.
Actually, I'm in Westchester County right now, and it's been raining pretty badly all
day, so everywhere has been flooding.
And I think there's been flooding in New York City as well, and, like, the surrounding areas.
But the cops and fire department have been up and down the street all day.
I don't know what they're exactly rushing to.
It's probably, like, you know, things catching on fire because people's basins are flooding
and their power's shorting out.
I have no idea, but it's been an exciting day today.
Nice.
We'll probably hear a lot more of that as the show goes on.
All right.
It adds to the excitement.
Yeah, dog.
Why are you going to be stealing my shit?
Oh, come on.
All right.
You can have it.
Can you borrow your lines?
You can borrow it.
I thought in our relationship you share everything.
Yeah, well, listen.
Some of us give, and some of us receive.
That's all I'm saying.
Oh, ouch.
Oh, burn.
And physically.
Why'd you got to go there?
I don't know.
Anyway.
So let me explain.
I went to school for a computer science degree.
I have a bachelor's in computer science.
One of my classes was a software engineering class.
It was a class I didn't need to take.
I just opted to take it because it sounded cool.
And at the time, they were doing their software engineering and job.
I think they still are, actually.
It's like a really popular language for software engineering classes.
So in any case, we went through all this stuff.
My biggest problem with the class was that I couldn't understand anything the professor was saying.
And the projects were really, really, really simple.
So I just figured I was banging on Java, and it would be no big deal.
But at the time, at least I didn't know of any development environment for Java, so I ended up doing everything in a regular text editor on the command line.
And I was programming some, you know, spreadsheet-ish type application in Java using FWT, which is the Swing Toolkit, I think.
Oh, man.
That's it.
Okay.
Yeah, it was awful.
And like I said, there was no debugger.
There was no development environment.
There was no nothing.
Now, I'm sure everyone's going to say, not everybody, but a lot of people are going to say, oh, you don't need a development environment.
You don't need a fancy debugger.
You know, you can use print defs or system.out.println or whatever Java has.
You can do all your debugging like that.
Yeah, you know what?
When you're developing a tool application, yeah, you can do that.
But when your application starts to get bigger, you kind of grow out of that.
So, yeah, for this thing, that's what I did, and I got through it.
But, you know, as I started using other languages like, you know, C++, I had Voiland, C++ Builder.
Like, the development environment was really slick.
And I said, you know what, I don't want to use Java because the tools that I was aware of at the time were garbage.
And back then, Java was so slow, it was unbelievable.
That hasn't changed.
Well, we'll get into that.
Yeah.
So, for the longest time, you know, I just, nobody could change my mind.
I thought Java was garbage.
I had heard, you know, there were nice development environments for it now.
But, you know, I thought, okay, well, you know, for my web stuff, PHP is the way to go.
And for my, you know, server-based stuff, Perl is the way to go because PHP has got a lot of modules.
Perl has a lot of modules.
There's a lot of example code out there.
And everything's great.
But then I kind of thought about it, and I was like, well, I don't really have a good development environment for PHP.
Supposedly there's, you know, there's an Eclipse plug-in for PHP.
But, I don't know, I've tried a bunch of things, and nothing has really worked all that well for me.
So, for a long time, I had been looking for a good replacement for PHP.
Then I found Ruby on Rails and realized that that was definitely not the good replacement for PHP.
Now, wait a minute.
You loved Ruby at first.
You know, something I did, and then there were just, I'm pretty sure on the last show I had said this,
but the guy who came up with Ruby on Rails made some comment about how store procedures were, you know, useless.
You know, anybody who's using them is just using them because it's like an old database guy way of thinking.
Which is just nonsense, you know.
And his comment revolved around the fact that, you know, all applications have one interface that people are using to get to them.
If you're writing a Ruby on Rails application, it's got a database.
You're always accessing it through Ruby on Rails.
Why do you need store procedures?
That's just not true.
It's not realistic.
So, that turned me off to Ruby on Rails.
You know, and people said, oh, you can use store procedures in Ruby on Rails,
and you can violate the standards that they have to put Ruby on Rails on your old database scheme and all that stuff.
Yeah, yeah, that's true.
But by default, it's designed to not let you do that.
Not let you do it, but make it more difficult.
So, you know, why deal with the hassle?
You know, it didn't really offer me anything good.
It gave me a quick way to get an application up and running that looked like a canned Ruby on Rails application.
But beyond that, it didn't really offer me what I wanted.
So, I just dropped it.
I didn't really care anymore.
Gotcha.
Well, and also, before we move on, I wanted to respond to one of the other comments you made that I agree with
is basically error handling in general and any kind of debugging.
It frustrates me all the time.
Programs that I work with all the time still are in that mindset of, you know,
throwing a bunch of print statements or, you know, DBMS output statements of some kind into your code
so that as it cycles through there, it spits out some raw text as you go through.
Like, that's a good way to debug stuff.
I mean, that is so old school.
And, I mean, don't get me wrong.
There's been some occasions where if you really want to isolate it,
you'll have to really get down in there and try that.
Or if you want to display some of your variables in progress, you might want to do that.
But there's so many.
Modern languages have so many better, so many different and better ways of error handling
that you should never have that mindset anymore, in my opinion.
Yeah, it's ridiculous to think that you would do that.
Now, don't get me wrong.
There are environments where, you know, printf and all that stuff is the way to go,
especially if something's running in real time.
Like, you can't use a debugger easily on a real-time system.
So you need to have stuff spitting out to the screen as it's running.
But for me, I'm not developing many real-time systems.
So, you know, I need a development environment.
I need, like, a real way to debug my application.
So, anyway.
So fast forward a whole bunch of months.
I took a job, and I was dealing with these devices that were programmed in Java,
and everybody at the company was a Java programmer,
and everybody kept telling me how great Java was.
And I kept telling them, Java sucks.
Well, they...
Took you to task.
I was a bit of a Linux guy.
They needed a Linux guy to do some work for them.
And so they sent me over to Germany to meet with the branch of the company that writes the Java codes
for these devices that they run.
I went over there, and I had told them for the longest time, I said,
I will do any job at this company except Fluffer and Java programmer
because they're pretty much the same thing.
Okay.
So, they got me over to Germany, and they said,
well, we would like you to program in Java.
And I was like, oh, my God.
But I bit my tongue.
I said, you know what?
Let me see what these guys have to show me.
Right.
The first thing they had me do was they had me download Eclipse.
Downloaded Eclipse, installed it, and then they gave me the source code.
Eclipse is what now?
Explain.
You know, people say Eclipse is an editor, but Eclipse is not an editor.
Eclipse is a software development kit.
Well, you can build editors, but you can actually build other applications
that have nothing to do with editing text.
So, Eclipse, people have taken Eclipse, and they've built a text editor into it
and a class browser and a debugger and, like, a whole development environment
for all kinds of languages, Java being the one that I think,
at least from what I've seen, is the best supported.
Eclipse itself is written in Java.
So, therefore, it eats lots of memory, and it's very slow, but it's good.
Hmm.
Whatever happened to Forte?
Oh, NetBeans.
You know, for a long time, actually, the original DDP Freak Tools, or was it Freak Toys?
No, it was Freak Toys.
A long time ago, it was written in Java, J2MA.
And I was using Sun 1, which was Forte NetBeans.
And it seemed like every time I opened the application, it said, hey, there's an update.
By the way, we've changed the name again.
So, I don't know whatever happened with them.
I'm sure that it's still around, but I don't know anybody that used it.
The two developed environments that I know people use for Java are Eclipse and this thing called, I think it's pronounced IntelliJ.
It's just spelled IntelliJ with a capital J at the end.
IntelliJ is something that's paid for, and Eclipse is free and sponsored by IBM.
But I've only used Eclipse, so I can't really talk about IntelliJ.
Okay.
So.
Well, I also had the bachelor's in science, and when I had to do Java in college, we had to use Forte.
And I hated every miserable second of that thing.
Yeah, it was.
And Tomcat.
Tomcat.
Web surfer.
Well, actually, you know what?
You know, maybe we'll get into that in just a minute or two.
All right, go ahead.
So these guys sat me down, and they basically told me, you know, we'd like to see what you can do with the tools we've given you.
And I'm thinking to myself, well, I haven't ridden Java since 2002 or, yeah, 2001 or 2002 when I rode these freak toys, and it was J2ME.
So this is going to be a big pain in the ass.
So I took their development kit to this device, sat down, and in no time I had, you know, an application up and running.
And it had, the development environment has whatever you want to call it, IntelliSense, where, like, you type a variable name or you type a class name and hit, you know, the .key,
and then, like, control space, and it lists all of the elements in that class.
Right.
Like, all of that nice stuff that...
All the methods.
Okay.
Brings up all the methods and all that stuff.
Yeah, it brings up all the methods and all of the data members and stuff like that, and tells you the difference between each one,
and, like, can pull the Java doc from the source so that if you have a real comment on it that says what it is, it pops up in the window.
So I was like, wow, this is really easy.
Anybody could write applications with tools like this.
Right.
So, I mean, even the lowest common denominator, like me.
Wow.
Or I think the same thing would be said for Visual Studio.
You know something?
I use Visual Studio a lot, and honestly, compared to Eclipse and Java, Visual Studio is not so great.
Really?
I think that that is because that I kind of, after using it for a little while, I actually like the Java way of doing things,
which is more of a language thing as opposed to an environment thing.
Okay.
So, um...
Other than the garbage collection, automatic garbage collection, I don't know what other benefit, but...
Anyway, go ahead with the story.
We're jumping in with so many different...
Yeah, yeah, yeah.
Yeah, okay, go ahead.
So, so that was, you know, that was kind of it.
I looked back at all of my misspent years and said, maybe Java's not that crappy.
So I wrote the application, toyed around with it, was fairly impressed by what Java could do.
So I started looking into other things that Java could do, like writing web applications in it.
But a long time ago, I had a co-worker slash boss who tried to get me to learn Java servlets for his business at the time.
And I was like, oh, no, PHP is the way to go.
Java servlets are junk.
Java is slow.
Java is crap.
Blah, blah, blah.
Yeah, well, now I'm looking at the servlets again.
And servlets are actually pretty cool.
Well, should we take a moment here to talk about servlets and applets and the different...
Okay.
And this is the thing that confuses me the most and gets me frustrated with Java is all these different terms.
What's the difference between a servlet, an applet, a Java bean, you know, all these different things?
Okay, well, that's kind of difficult.
Like I said, I'm a Java noob.
I can write things in Java, but I don't know all the standards and why, you know, why a thing called XYZ is different from a thing called ABC.
Now, my understanding, and feel free to write in and tell me that I'm totally stupid, is that there's a base Java object,
which has no methods, no parameters, no nothing.
It's just an object that is just kind of like a placeholder.
And then there's a Java applet and Java application and Java servlets.
These things all inherit this object, and they give it different methods that you have to implement.
Like for an application, you have to implement the main method, and then the main method will start your whole application running.
And applet does the same thing, but I think that applets only run in your web browser.
I don't know why exactly they're different from applications.
I guess applets have a graphical user interface always, and applications can run on the command line.
That's what I originally thought was the difference, but I could be wrong about that, too.
So in any case, applets and applications, they have a main method that starts up and runs your application.
Servlets are just Java code that has two entry points.
One is called do get, and one is called do post.
And one is called when somebody hits your servlet URL with a get request.
The other one is called when somebody hits your servlet URL with a post request.
That's it.
So there's nothing really, I wish there was more to it that I could explain to you, but basically, it just means that this type of object has this entry point, the main method,
or this one has these two entry points, do get and do post, which just basically tells it where to start and what to start doing.
That's it.
I mean, that's as simple as I can make it out to be.
Does that make any sense?
Well, somewhat, but, you know, I wish I could get Voodoo Hal.
I know he did a lot of Java development at one point.
Or, you know what, I guess put a call out to the listening audience right now of anybody who can write in, email us, radio at binrev.com,
and explain this to me because I still don't see, like, I see on an individual basis, you know,
an applet is running on the client side versus a servlet on the server side.
I get that, but why would I choose, how would I make the decision of which way I wanted to do it?
And, you know, then there's JSP Java server pages I mentioned earlier,
which I thought was an unfortunate name for Java stored procedures as well because you can get confused there.
And that's more like PHP and ASP where it's dynamically generating code or, I mean, there's just so many things.
Java beans, I still don't know what that is.
And J2ME, J2EE, J, all these different abbreviations, it just, it's so confusing that I, it's so frustrating and so confusing,
it makes me not want to learn it, to be honest with you.
Yeah, yeah, I hear you.
You know, the difference between J2ME and J2SE and J2EE, well, let's go through the names first.
J2SE is Java 2 Standard Edition, I think.
And J2ME is...
Mobile?
I thought it was mobile, but somebody told me recently that it's Micro Edition,
so it could be more than just for, like, mobile phones, for any type of device.
And then there's J2EE, which is Enterprise Edition, which people use to build huge, bloated Enterprise apps.
Now, I thought those were the names of the IDEs themselves.
You would download, if you wanted to develop mobile apps or mini apps or whatever that is,
you would download the J2ME IDE package.
No, they just, they refer to different, you know, to different standards, like J2SE is,
you can write applications in this one, these type of specific set of features available to you.
Same thing with ME, same thing with EE.
You know, it just means that you have different functionality available to you.
But you could use, Eclipse will let you program in any of these things without downloading too much extra junk to get them up and running.
Hmm, okay.
So it doesn't really matter which IDE you use, but as long as it supports that standard, it's not really what the IDE is called.
Okay, so just all the objects and methods that apply to each one are the ones you'd be working with,
depending on what your application is for.
Right, right.
Okay.
So, you know, where was I?
Where?
We're so far, like, off topic, so I'm just confused.
I don't know that we really had a topic.
I think we're going to kind of freestyle the whole thing.
But you were talking about using that IDE and found that you were able to develop a lot faster than you expected.
Oh, yeah.
So, basically, I decided that I would try to look a little bit more into Java and see what it had to offer me.
And there were a few nice things that Java did for web applications that PHP doesn't do.
Now, I know, no matter what I say, if I say PHP doesn't do something, someone is going to write in and say, yes, it does.
So I'm just going to concede right now that I'm totally wrong.
So if you want to write in and tell me that I'm totally wrong, I agree with you.
Well, but it's one of those things where, you know, it may be able to do it, but that doesn't mean it does it well.
It doesn't mean it's, you know, natively supported.
It may be, you know, forcing that square peg into a round hole.
Just because you can make it happen, make it work, doesn't mean it's an efficient, good, proper, secure way to do it.
I mean, it may do it, but it might not do it well.
And I think you can safely say that.
Well, for me, I had a problem where I wanted to be able to debug the whole Bell's Mind site on my laptop without interrupting the whole production side of things.
And I could do that with, like, a hidden directory that had the code checked out to a different location and all that other kind of stuff.
But it just wasn't convenient because I had to, like, keep going back and forth to the server.
I wanted to do everything local on my laptop.
So the advantage for Java was that I could very easily just fire up the development environment and run my application locally,
hook it up to that remote database over a VPN tunnel that I have, and just run the application on my laptop.
And, you know, the server's not affected at all.
The server isn't running any of this new untested code.
So if the code freaks out and does something totally horrible, it's not going to, like, destroy the performance of the production box.
So that was nice thing one.
Nice thing two was the actual development environment, being able to set breakpoints and stepping through code.
And actually, Java lets you change your code on the fly.
And as soon as you save it, it recompiles it, and then it jumps back to whatever the top of the function you're in is, and you can start debugging again.
So if I've got a loop that I realized I messed up, you know, one, I messed up, like, essentially the escape clause for it,
I can go and change it while it's running.
When I notice that I'm locked in an infinite loop, I can change it while it's running.
It goes back to the top of the function, like, they're stepping through again.
So I don't have to, you know, constantly restart my debugging process from scratch.
So that was a really nice feature.
The other really nice feature was that I could create static classes on the server.
And basically what a static class is, is whenever the web server starts up and it loads all of my classes into memory,
it instantiates, basically creates the static class that when any user is hitting the website,
they're getting access to this one instance of this object.
So if I have a big object that has a whole bunch of data in it, there's only one copy of it on the server.
So it's very efficient.
Like, everybody's hitting the same copy.
Whereas with PHP, again, I could be wrong if you've got Zend and all kinds of other optimization things turned on.
When somebody hits a site, it's reading that PHP file.
It's parsing it.
It's creating all of these objects on the fly in its own memory space.
So as you have people hitting it over and over and over again, it's got to keep doing all of this work continually.
Whereas with Java, you put the objects on the server, it instantiates them, they're built once,
and you just hit them and pull the data out of them.
And I've noticed in my informal testing that the performance on Bell's mind with Java serverless as opposed to PHP is much, much, much faster.
Specifically with the beta version of the free fax code that I've been testing,
the server load is a lot lower than it was with the PHP implementation.
And that's not to say the PHP implementation was good and efficient,
but it was very, very easy to make a good and efficient implementation of Java.
So that was a big boost to me.
And surprisingly responsive, too, I'll add.
I was very impressed at the real-time data that I was looking at.
Yeah, right now I have the settings kind of turned up as high as they can be.
If you go to the Bell's mind interface and you check out the PBX status panel,
that status panel refreshes once every second.
So with me and Stank Diggy over here checking it out, it's very fast, very low server load compared to the same PHP script that was running before.
Now, again, that wasn't very efficient, and it had to do a lot of things in the background to connect to the database
and do all this other kind of stuff, and it refreshed the whole page as opposed to just refreshing part of the page.
So that script was a lot heavier to start out with.
But, again, this is very easy to create and very responsive.
And, I don't know, it's just badass.
You have to check it out.
So check it out, pull up that page, sign into the PBX, and kind of navigate around the menus,
and you'll see that it shows you, you know, it doesn't show you your caller ID or anything like that.
It just shows you a random user number for each person that calls in, and then it'll show you, you know, where you are on the PBX.
If you're listening to RSA episode 58 like somebody was today, it's going to say,
this user has been on the PBX since this time, and they're listening to RSA 58.
Hit the pound key, get back out to the main menu,
and it'll say that you're at the main menu.
If you go into a conference, it'll say that you're in a conference.
One of the neat features that you'll also notice, if you go into a conference,
any conference number between 500 and 599, it'll actually show you.
Those are going to be considered public conferences now.
So people can go on the PBX status page, and they'll be able to look and see, oh, people are in conference, you know, 500.
There's like eight people in there, and they're all, you know, you can see when people are talking and when people are not talking,
and all that kind of stuff.
You mean all, you know, all damn good and well, all of them were talking at the same time.
Well, yeah, of course, of course.
But in theory, if they weren't all, you know, just constantly chattering and pressing touch tones
and doing all that kind of nonsense, that it would do, the status would change from talking to not talking.
But, yeah, probably nobody will ever see not talking on there.
So whatever.
That's that.
So like I said, static objects.
I actually have a static object that what it does is when the application is deployed,
and I'll get to the deployment in a second, which was kind of where it was going initially.
When the application is deployed, this object starts up, connects to asterisk,
and then connects to asterisk over the manager interface,
and then anytime something happens on the PBX, asterisk pushes this message to the Java application,
and the Java application keeps the state of the whole PBX in memory.
Whereas before, with PHP, since I couldn't start a process in the background and keep it running,
I know there are ways to do it, but not as easy as there are in Java.
I couldn't start a process in the background, so what I'd have to do is every time I needed the status,
I wanted the status of PBX, I'd have to connect and request all the status that I want and then disconnect.
Well, with Java, I just tell this thing, start a thread, listen to this connection, get the status all the time.
That was performance saving bit number one right there.
But that reduces the server load unbelievably.
You can't even imagine.
So let's think.
What was the other big deal?
The other thing that it does is it also handles AGI requests by a fast AGI.
So again, previously I had AGI's written in Perl.
And AGI is asterisk gateway interface?
Yeah, exactly.
Sorry, sorry, AGI is basically a way to write applications that can receive information from
the user, touch tones or, you know, even voice on some of them from what I've heard, but I've
never done it.
So basically you can accept touch tones from people and kind of route them around.
You write a program like a Perl script that says, okay, when the user hits 4, you know,
go to the AMAC or whatever it is.
Well, the problem with the Perl AGI's is that every time somebody goes into one of those AGI's,
it has to start up Perl and then it has to start the AGI and then connect back to the PBX.
Well, again, with Java, I created a static object that connects to asterisk once.
And then any time somebody wants to start an AGI, it just pushes a message over that pipe
that's already open.
And then, you know, they communicate back and forth.
And the Java AGI just processes the call for me with very, very little overhead.
Nothing has to start up every time somebody connects.
None of that nonsense.
Just kind of, it's already loaded and it happens.
The first time somebody calls the PBX, there's a slight delay because those things are like
being built.
But once they're built, there's no more delay for people.
So that all happens when the application is deployed.
So that was one of the big things that I really liked.
I can start a process.
I can run it in the background.
I can have it do whatever I want.
And I don't have to keep starting it.
Every time somebody hits a page or with a cron job or something like that, it just happens
by magic.
You don't have to keep Perl scripts running in the background using screen.
Like all of these things I have to do to get a free factor up and running, I don't have
to do any more.
Everything is nice and clean.
Everything is encapsulated in objects, so it's very easy for me to go through and add
new features and do all that kind of stuff.
But in any case, the real big deal, like I was saying before, is debugging and deployment.
So I've already gone through debugging.
Debugging is very easy through Eclipse.
Deployment is a really, really nice thing.
And with the Eclipse IDE, I can take all of my files for BellsLine, all the static content,
all the servlets, all this AGI stuff, and I can export it as a WAR file, which Java application
is stored in JAR files, which stands for Java Archive.
Well, web applications are stored in WAR files, which I believe stands for Web Archive.
So what I do with the Web Archive file is I take it, I export it, and then I use a program
called Unison, which then takes that Archive file and puts it in the Tomcat server, because
I know you love Tomcat, puts it in its Web Apps directory, and Tomcat every once in a while
will look.
You know, it's like every couple of seconds or something like that.
We'll look and say, oh, the WAR file's changed.
I'm going to take all the old content, get rid of it, pull everything out of this archive,
and put it on the server and start everything over.
So anytime I need to make a change, I know that everything is there.
Everything's included in this one file, and the server will shut itself down and restart
cleanly just when I essentially drag that file over.
So it avoids all of the headaches of, oh, did I put this file in, or did I make sure that
this link matches, all that other kind of stuff.
Don't have to worry about that anymore.
Everything's in one file.
Everything gets extracted in one shot.
Overwrites the old copies so no old junk is sitting around.
And again, it just works.
It just works.
But what do you think about STEM apples?
Well, I don't know.
I can't say that I've written anything worthwhile in Java, to be honest with you.
When I was in college, all the stuff I did was JSP, Java Server Pages, and it was, again,
a whole specific application of some type of Java, which, again, still confuses the hell
out of me sometimes.
I don't know why anybody would choose JSP, again, over ASP or PHP or whatever, other than
the fact that maybe they're running Microsoft environment.
They might be forced to use ASP or, yeah, well, that's pretty much the only word to say
it.
But here's something else that bugs me about Java.
Let me see what you, let me throw this out there and see what you feel about this.
Okay, sure.
Virtual machines.
Yeah.
Okay, Java, Java proclaims to be write-once-run anywhere.
Right.
As though somehow it's this mythical language that I can write code one time and it's magically
going to work anywhere that Java is available.
So, first of all, if that's the case, my first thing that makes me wonder is, well, what about
back to what you said earlier about the J2ME, J2SE, J2EE?
Each one of those is different depending on where you're planning on deploying this application.
So, how can you write code that's going to work on all three of those if all three of
those have different ways of doing things?
Secondly, well, actually, let's stop there.
First of all, where am I going wrong with that thought process?
No, you know, I'm in the same boat.
People say Java, write-once, run-anywhere.
It's not really true.
If that was true, you would have, you know, fewer standards.
And even when you're using the same standard, even if you're using, let's say, J2EE, you
mentioned Comcat before.
I'm pretty sure, now, of course, this is going to show everybody that I'm super new when
it comes to Java.
I'm pretty sure that my application is J2EE.
And the only reason I think that is because when I try to use just the plain old Java mode in
Eclipse, nothing works.
So, anyway.
Yeah.
And is it going to work in another server besides Tomcat?
Or are there different hooks for other applications?
So, you'd actually have to change the libraries and the objects and all that kind of stuff.
Right.
Well, that's what I'm getting to.
I wrote mine and tested mine on Tomcat.
Now, supposedly, if I had the same application, I should be able to use it on another Java web
server.
Or I think they call them servlet containers.
Oh, yes.
But we'll forget about that.
There are a few other Java web servers that I'm aware of.
First is Tomcat, the one that I use.
Then there is JBoss, which is by Red Hat, I think.
Or Red Hat owns it now.
But maybe JBoss was on its own before, something like that.
So, then there's also WebSphere by IBM.
And I think that there's another one by a company called BEA called WebLogic, maybe?
Web something.
I don't know.
In any case.
The company that I was working for that took me over to Germany and got me all hyped up
about Java, they have a J2EE application that runs on JBoss and WebSphere.
Well, the deployment aspect that I was talking about before, which was really nice in Tomcat,
where I take my WAR file from my desktop and I R-sync it over the network and I just prop it
in this directory and then my new website's there and does everything for me.
Not so much on this, like, really big enterprise system.
Now, granted, it's because a system like that requires more configuration.
But the installation instructions for WebSphere and for JBoss were so vastly different.
It was just amazing.
I don't even know how to do an installation on WebSphere.
Whereas with JBoss, I could do it in a couple of minutes.
WebSphere, there were just a million steps and you needed, like, certified WebSphere people
to do everything.
It was a mess.
To me, that is not, that is, like, counter to the whole idea of write once and run anywhere.
Right.
Well, and not only that, okay, the other thing is, and this is where I was going, I guess,
with virtual machines is, you're, every virtual, every environment you're going to be working
in needs a virtual machine that's going to be able to interpret and run that Java code.
So, you have to download a virtual machine for Windows, one for Unix, one for Linux, for,
I don't know how different if they run for BSD, for all the different environments and stuff,
and then for all the different versions of it, there's, I'm sure there's some for different
PDAs, cell phones, et cetera, all these different virtual machines, and then Oracle, for example,
that I talked about earlier, it's going to have, basically, built-in virtual machines so
that it can natively support Java store procedures.
So, the applications may have virtual machines built into them.
If you have to download and install a virtual machine to make the code run, it's not really
write-once-run-anywhere at all.
The whole concept of that, to me, is bizarre because it's not write-once-run-anywhere,
it's write-once-run-anywhere as long as you have pre-installed the virtual machine for
said environment.
Well, I mean, you've got to have some type of in-between that gives you, you know, a bridge
to the actual operating system.
Like, it's very difficult to write just a fucking executable file that's going to run
on all these different platforms.
Not to say that it hasn't been done, because it has, but it's a big mess.
Well, it's just that, I just don't like the idea that they purport themselves to be such
a beast, and people actually believe this concept that, yeah, you just write some code
anywhere, and then you just, sure, you just copy it over to Linux, and you run it there
just the same.
You don't have to change anything, and then you'll run it and put it on your cell phone,
and it'll run just fine.
Well, no, bullshit.
It does not at all.
Yeah.
And I would even argue that even closer to write-once-run-anywhere, even closer than Java,
I would argue that ANSI standard C is closer to that than Java, because it's a standard.
It's an ANSI standard, and the environments, as long as they support the ANSI standards,
which most do, and that holds true for any language, to me is more portable than anything.
If I write an ANSI standard program on Linux, I can bring it over, compile it, and run it
in Windows.
Right, but I could counter that with saying ANSI C then is write-once-run-anywhere, as long
as you have all of the compiler tools and all of the libraries.
Ah, and that's the same thing with Java.
So how come Java is purported to be write-once-run-anywhere when it's really no better than ANSI C?
I think we're both saying the same thing.
No, no, no, I disagree, because with Java, you can just give somebody one file, a JAR file,
a WAR file, an EAR file, which is an enterprise archive.
You can give them that one file that has everything in it, and as long as they have the virtual machine,
they can just run it.
Now, if the JAR file doesn't contain all of the libraries, you need those external libraries
too, but you can make.
All right, but as long as the virtual machine is there.
You just said it.
Right, yeah, yeah, as long as the virtual machine is there, but it doesn't require the
users to recompile it.
You don't have to know about make files and all this other kind of stuff.
Well, that's true.
You just type Java, and then the name of the JAR file, and you're done.
Well, that's true that you do not have to recompile it, but it's still the same to me.
They're both just as ridiculous to me.
Neither one of them is write once, run anywhere, but I don't think, just saying that for Java,
I just don't think it's any more appropriate than it is for anything else.
Well, but for Java, it involves one less step.
With NTC, it would be compile and then run, but for Java, it would just be run with the
virtual machine.
Right, well, and you know, the same thing does hold true with C as far as if you use
some libraries that aren't available on their destination computer, you're going to have
to bring those over there, too.
Yeah.
So that's still...
You can compile things statically, so it includes everything also, but not everybody does that.
Right, so...
And if it's pre-compiled, it's got to be pre-compiled for your system.
Well, for the architecture.
Just download the static binary for every system in the world.
It doesn't work, so...
No.
You know, I kind of agree with the run anywhere bit.
I just...
For me, it's not the problem of having the virtual machine.
I understand there's no way around it.
That's, like I said, that's your bridge to the operating system.
But...
Well, but how about the mono project?
Let's use that as an example.
That's a project to run .NET applications under Linux, right?
Right.
All right, so it's not exactly a virtual machine, but it's an environment that will allow you
to write your code once on a Windows box, your .NET code, and run it over on a Linux box.
So basically, it's accomplishing the same thing...
Yeah.
...to me, in my mind, anyway, of what you're describing.
Is that right?
Absolutely, yeah.
So...
Java and .NET, I mean, I don't really know all too much about the whole .NET framework.
Again, I've programmed in it, but I don't know, like, the very low-level specifics of it.
But, yeah, to run a .NET application, you need the .NET framework.
You've got to download the, you know, 1.1 or 2.0, whatever your application calls for,
or now 3.0 with Vista.
You've got to download that, and if you want to run it on Linux, you've got to download
Mono, and if you want to run it on BSD, you've got to download Mono for that, you compile Mono
for that.
So you're in the same boat if you want to run .NET applications as if you want to run Java
applications.
If you want Java apps, you've got to download the virtual machines.
Right, exactly.
But for me, the thing is, since Java was not written by Microsoft, there's better support
on all platforms for it.
You'd be hard-pressed to find, you know, a real personal computer platform that doesn't
have its type of virtual machine that's well-tested and works, whereas the Mono project, I don't
know if you've tried to run anything with the Mono project.
Things do work, but if you're just trying to run a straight-up .NET application with Mono,
it doesn't work.
Well, I don't know that Mono's final release of any kind, I think it's still in beta form,
isn't it?
Oh, yeah, yeah, yeah, it's definitely not all there, but that's my point.
Java is way further ahead in years and years than Mono.
Oh, sure.
No doubt about that.
Well, is there anything else we want to talk about Java, then, before we...
I don't know, I wish we had, as always, I wish we had more time to do it.
I wish I had a little more time to prepare and think about it.
I know we're kind of like doing a stream of consciousness and rambling a little bit, but
hopefully the parts of it that get across to people are easy to deploy, easy to debug,
easy to move from machine to machine, you know, as long as you're using the same, you know,
you're using Tomcat or whatever on all your machines, stuff like that.
Very maintainable.
Forces you to use objects, to be object-oriented, which to me initially seemed like a pain,
but now that I've gotten used to it, it helps me keep my source code very organized and has
made my ability to develop applications just that much faster, because now I have a lot
of code that's reusable.
I just find myself using code from different projects all over the place.
I have three or four Java projects all going right now.
Is there a lot of code out there on the global interweb that you can hijack and use for...
Yeah.
Since it's portable...
There's a lot of free code out there.
There's a lot of libraries.
There's an Asterisk library called Asterisk Java that I've been using.
That's kind of my big secret behind all the Free Factor and Bell's Mind stuff right now.
Nice.
And the other thing, your favorite company in the world, Google...
Oh, no.
Google has this thing called the Google Web Toolkit.
Now, I mentioned SWT before, which is the Swing Toolkit for building graphical applications.
The Google Web Toolkit is a way to build web applications, AJAX-style web applications,
you know, like Google Maps and Google Mail, all that stuff, with Java.
And the cool thing about it is, you write Java code that, you know, creates a text box or creates,
you know, some type of image or something like that.
You debug this Java code in Google's little web browser that pops up so you can step through all of your Java code
and say, okay, let me just click this button, pop this image up in their browser, or move this text box,
and you can do animation, all kinds of other stuff.
You do that.
You debug your application in Java.
When you're done, you run the Google compilation script.
It compiles your Java into JavaScript, another standard that I know you love.
And you can make browser-side, again, AJAX-style applications in JavaScript without actually knowing any JavaScript.
So all of the stuff in the interface that I have here was written in Java but runs in your browser as JavaScript,
if that makes sense at all.
I don't know if it does anymore.
I know.
It's all confusing.
But just think about it like this.
In order to write my interface, I didn't need to know any JavaScript at all.
All I had to do was use the Google Web Toolkit, pretend like I was writing a regular graphical application,
and then Google somehow, to the magic of their JavaScript compiler, turns it into JavaScript for me,
and it just runs magically.
Well, I mean, there's something to be said for rapid application development, for RAD development,
but I don't know.
I just wish I understood the fundamentals of how and why it's designed the way that it is better.
But that would probably make for some pretty dry radio,
so I guess that's pretty much all the damage we can do on it for this week.
Yeah.
Google bought DoubleClick.
What do you think about that?
Yeah, you know, I heard that somewhere.
I thought DoubleClick was like one of the most evil companies in the world,
but apparently Google didn't think so.
Google is not evil, of course, so...
Well, maybe they'll turn DoubleClick into like something really nice.
Yeah, right, tracking all of our movement on the interweb.
See, DoubleClick got into problems, Oxy.
I hear you got me on there.
Oh, why did I have to go and bring this up?
I'm going to stop.
DoubleClick, of course, is the company that pushed forward banner ads back in the day
and little cookies back in early browser days,
and they tracked everywhere that you were going
so they could see what sites you frequented by the cookie of the tracking,
and they got in a lot of trouble with it over privacy and whatnot.
Some of the things I complain that Google's doing.
Well, now Google has bought their entire database of all the stuff that they've tracked,
and now that they own it, they can easily tie that into your Google account.
So if you have any information that DoubleClick's been tracking on you
and the websites you visit, Google's got that now.
So once again, Google's database is getting bigger and bigger and bigger.
Big Brother is watching, and his name is Google.
Awesome. I love it.
I know.
I can't wait to buy more Google stock.
$400 a share, some shit like that?
That's craziness.
It's a bargain.
I wish it was $1,000 a share so I could buy it at that price.
If it was $1,000 a share, all the actual Google people who own stock in their own company
would all be so rich that they'd all quit and Google would die.
Or they'd use all that money to buy even more stuff to grow even bigger.
Yeah, to make a bigger Google flex.
Wow. Anyway, I digress. We'll leave that for discussion by someone else.
Let's see.
Is that all the time we have?
Well, we've got, I don't know, we've got about 15, 10, 15 minutes.
Hmm.
Yeah, that's it.
All dirty today?
So by the time we do all our closing stuff here, we'll be just about out of time.
But we can talk dirty afterwards.
Oh, yeah.
Yeah.
That'll be on Freak Factor.
We can sing our lolliproan song.
Oh, my God. Go for it. Come on. Go for it.
Nope. Can't do that one on the air. Nobody wants to hear me.
I did the Janet Jackson singing one time. That was about as much as you get.
Oh, man.
Anyway.
That one was great, though. That was just pure genius.
Dude, you know what we should do? We should go on American Idol next year and sing that in the tryouts.
That would definitely make the interweb.
Well, I don't know. Do you think that they would get it?
Probably not, but they'd put me through. I'd dress up like a schoolgirl or something.
They'd put me through to make me.
Wow.
Yeah, wouldn't that be awesome?
Oh, my God. That definitely would not make it on TV.
How hot is that? Is that sexy talk?
That is sexy talk, right?
You want to make sexy time?
No, that's all right.
Oh, man. Well, let's see.
A reminder for everybody listening that your local BinRev meetings are this weekend.
If you have one, I do, so I will be attending that.
So hopefully you have some new people coming out to that one.
Some people on the forum said they might give it a shot this weekend, so hopefully we'll see people there.
Shouts this week. Shouts to MC Frontalot, MC Lars, and Optimus Rhyme.
They are on tour right now.
Go check out Frontalot.com or OptimusRhyme.com or MCLars.com.
I'm sure they all have the schedule, the tour schedule out there.
Go check them out if they are coming near you.
I think they're on the west side right now, but they're coming back east hopefully sometime soon, a few months.
Shouts to Droops and Enigma, and what do you got?
You know, I did have a whole bunch of shouts to the people that have been helping me do bugs and bells and mine stuff,
but their names are all escaping me now.
All right. Well, shouts to them.
I guess I have shouts to nobody then.
Oh, man. None at all.
No. Actually, you know what?
I don't know how to pronounce his name, so I think he's a PLA guy.
His handle is Yautch or Yuck or something like that.
Y-A-U-C-H.
Yautch, right?
Yautch.
Is he named after Adam Yautch?
I read something about pronouncing it on the PLA voice a long time ago, and I apologize, but I don't remember exactly how.
But he's been giving me a lot of information about things that are working and not working
and stuff that he wants to see brought back because it hasn't been re-implemented yet.
But he has been the best source of motivation for the Bell's Mind revival.
So, shouts to him.
Cool. I thought that was a Beastie Boys reference.
I thought Yautch was one of the Beastie Boys.
The hell do I know?
I don't know. You don't know anything about rap.
Except Gangstar.
Yeah, buddy.
How about Melly Mel?
You know, I heard some Melly Mel on XM the other day.
Really?
It was really terrible.
Oh, you better watch your mouth.
Oh, let's see. What else?
Site of the week actually comes from Not Theory tonight.
As soon as we're done with the show, I'm going right back to the site of the week.
It is HandDrawnGames.com.
That's H-A-N-D-D-R-A-W-N-G-A-M-E-S.
HandDrawnGames.com.
And they have this little, I don't know, is it Java?
Shockwave? I don't know what the hell it is.
Some kind of web browser game.
Tower Defense.
Yeah, I think it's Flash.
Is it Flash? Okay.
Flash game.
I'm actually playing it right now, and it's awesome.
You're playing it while we're doing the show?
You douche.
Oh, whatever.
So go check it out.
Play Tower Defense and save your score.
Put it in group DDP, and you can see how you're doing against us,
because I kind of suck sore at it.
But we'll see.
By this time next week, maybe I'll be pwning noobs.
Binary Revolution Radio is provided by caro.net.
Go check out caro.net for your hosting needs.
Email us, of course, radio at binrev.com.
Feedback on any portion of the show, or to put us in place about our Java mistakes,
which I'm sure there were some.
Or, or, if you are, and only if you are an expert in Java,
contact us, because I would love to do a show
and talk about some of the fundamentals and the basics
and the underlying structure of how Java works,
the design, what it does and why it does it,
some of the nuts and bolts of it.
But only if you really know it well.
So, email me, radio at binrev.com,
and we will see if we can work out an episode in the future.
Certainly, Java and all the different flavors is a topic
we could probably do ten episodes on, to be honest, or really could.
So, I don't know.
We'll see where we go with that.
Closing music tonight is called Warriors.
It's from Metamystics Incorporated.
So, that is going to do it.
Not theory.
Thank you, my friend, for being on the show once again.
No problem.
And next time you go to Germany, give me a call.
I'll go with you.
We'll go over there.
Bang some chicks with hairy armpits.
Get some lolly prawn.
Oh, so keep cooking now.
Get some lolly prawn.
Wait a minute.
They don't have that in Germany.
Where would we have to go to get that?
The Czech Republic.
There you go.
Czech Republic or one of those Russian provinces
or something like that.
And that's it.
So, we will see everybody, we hope, anyway,
next week, same hack time.
Same hack channel.
Shit.
See that dude over there with his skates?
Over there.
He's after you.
He's got some guys.
I know they're in my hands.
But now they know I know it.
If you step to X, you best get your death plot.
I wreck the feds.
Get left with your next shot.
I etch you red with text or the X-Box.
Kill a team style.
Your head in a red stock.
Bomb flicks.
We move crowds.
I promise.
You're best inspected.
Rep like you hot blick.
Combat reptile.
Spent to kill.
Scepter up north.
You know Kim Jong-il.
Blaze like the case.
The pasted wasabi.
Hotter than a bomb.
They dropped Nagasaki.
Stone cold Salone.
Dragon Rocky.
Right hook to Jaws.
You drop and prompt me.
Problematic.
Blast few degrees.
Lines crafted to laugh at music scenes.
A fusion scene.
Known as you and C's.
The half you act is wishing you were me.
This is but a rap.
For the cats who be cutting glass.
Fuck with that.
Get mashed like you suck a tash.
Run it fast.
Or get smacked with another blast.
Crafted rap since fat like thunder pass.
Speaking of the dragon.
Now it's ending the myth.
And I'ma kill the mic over this funk Havana rip.
I'm the master motherfucking author.
Before the ages.
I wrote all the pages.
Created all the rages.
Spat more buck on beats than 12 gauges.
You motherfucking cats.
Sending up the short changes.
Me and X cover all the time.
Nameless.
Kyle L break the stasis.
I am faces.
The dawn of the dead.
When I roll out the bed.
Radiation flow like I'm covered in lead.
It's been sad when you clash with the Meta crew.
Have a medical crew on speed dial number two.
Even Steven King can't begin what we do to you.
We leave your body burning.
But it isn't the flu.
It's true.
Your left shell shot.
Lyrically bombs drop.
Physically seriously injured.
What the fuck?
I don't check once.
I'm a seven in the sun.
One, two.
Once again I'll become your water.
Though it's three.
Disease fatal when you lack vaccines.
Red pain like gangrene.
Ain't the process like a knee.
Seems the microphone skins.
Detected impotence.
Coming out.
Swinging your stick.
Looking ridiculous.
Dipping in the biggest of the Vans.
Marked bargain.
It's the margin.
You belong in the long side of a coffin.
Underground starving.
With the margins for air.
Try to resurrect yourself.
But I'm keeping you there.
To be fair.
Your land there bears one distinction.
A very special chance to study mass extinction.
And if you pop another shot of this.
You know we got a bottle.
This I'm aiming for your cartilage.
Just charging on my cartridges.
Heavy hitting slaughter.
And it's bothering you.
Don't woke up.
And someone's on my home.
Planet was blown.
Jump stones.
And you on earth.
It's too fine for what you are.
Everybody want to round it.
Watch out.
They let the purse.
Where the worst of the best.
Your heart beating IRS.
Leave SDX.
And the myth to do the rest.
Project verbal spaceships.
Smack y'all a facelift.
Back on this bitch.
Like a glitch in the matrix.
Deja vu.
And fuck you and your crew.
Stack of small rappers.
Jaw tapping in my shoe.
I hit them with industrial bleach.
Not a ghost.
But I'm going to leave them whiter than sheets.
On rap sheets.
And y'all weak.
Strap you in like a roller coaster.
Plain tongue spitting out burns.
Like a broken toaster.
Me mugging on a most worn a poster.
With an ample stack of samples.
And a Kenny Roger roaster.
Cooking up the fat beats.
Down on the street.
I build the foundation of my nation like a Greek.
Ten times a week.
Rhyme while I sleep in the bed.
Counting out beats like they sheep in my head.
Coming up with me for my song streak.
Flowing and I'm spitting like I just sprung a leak.
This is crack for peace.
You did a masterpiece.
So for a Latin beat.
Closing the Mac defeat.
When it's boom bap.
Du-rap blast the streets.
Every mystic hater.
Gonna have to beat.
Rhymes tape of Decatur.
All high blazers.
Style run high.
Like you all cry frazier.
Catch you rap about thugs and hoes.
You coming up short like they multi-bobes.
Now I chose the show that explodes the most.
Got your domes rolling.
So you know I'm ghosts.
And you dig it.
Oh, you thought that I'd finished.
Well, I didn't.
Here's my roll over a minute.
Anytime I spit it shit, I get elected.
Two percent of slingshot.
Get injected to the planet and leave stars the size of boulevard.
Since you so hard, you only coming back with the green card, homie.
You coming back slacked on your back like a retard.
Fill that shicey law shit, get your ass deep on.
Next three bars, you get Bill Ma.
Keep you in a jail cell like your steel cards.
Hide the steel bars, take your pen and your note cards.
Leave you choked up like asthmatic.
We'll see you then.
Wait a second.
Thanks.
Peace.
The Warriors are good.
Real good.
The best.