WEBVTT

00:00.000 --> 00:09.460
This is dedicated to all the hackers and the crackers, to the hackers and the crackers.

00:09.760 --> 00:15.520
I see in binary, I speak source code, step on my toes, I'll post a million jpegs of you

00:15.520 --> 00:20.780
and a fag pwned, in your digital stance getting firewalled ho, cause I'm riding the net in

00:20.780 --> 00:26.440
my six-fold, I was a dick with my 56, now with my cable I'm able to get that stable,

00:26.440 --> 00:31.740
on the out, my name is Ace and I'm a Leo, on the digital highway, my name is Neo and

00:31.740 --> 00:37.240
I'm a hero, in a flash, I'll screw you on burning dreamcast, you need some ISO, let me through

00:37.240 --> 00:42.680
my hard drive rifle, our exchange you could never stifle, in a digital hug, you just caught

00:42.680 --> 00:48.940
the love bug, I bootlegged your CD, I caused a fight between Un and Jay-Z, your CG, it's

00:48.940 --> 00:53.460
all gonna be free, whether we take it by force or we take it nicely, you feel that rattling

00:53.460 --> 00:58.140
your phones, when I tell you we just hacked out Jones, and NASDAQ leaves you flat on your

00:58.140 --> 01:03.440
back, cause I am he who loves to hack and crack, cause I am he who loves to hack and crack.

01:03.940 --> 01:11.160
This is dedicated to the hackers and the crackers, serial codes, source codes, ISOs, RANs, SIFs,

01:11.160 --> 01:14.180
SIFs, this is dedicated to the hackers and the crack.

01:14.260 --> 01:14.560
What?

01:15.760 --> 01:19.460
I said I'm ready, but I won't compete, you're new, you don't know it, so just go away.

01:19.460 --> 01:21.060
What is that, what is that from?

01:22.200 --> 01:26.620
It's, uh, you ever seen the DMC, uh, turntable championships?

01:28.080 --> 01:30.140
Um, I've heard of them, I've never seen them.

01:30.800 --> 01:36.500
Ah, well, in any case, one of the guys, when he won, um, or not when he won, they did this

01:36.500 --> 01:40.440
summit where they had all the guys who had won for like the past seven years, and his,

01:40.440 --> 01:46.980
uh, his bid was cutting up, uh, Gangstar and something else, but he said I'm ready, but I

01:46.980 --> 01:49.560
won't compete. I forget the two songs that it's from, but I'll find it for you.

01:49.660 --> 01:53.160
Oh, hells yeah. Gotta go back to some Gangstar.

01:53.860 --> 01:55.080
Yo, it's Leet.

01:55.340 --> 01:59.620
And welcome everybody to the Leetest episode of Binary Revolution Radio, episode number

01:59.620 --> 02:05.540
192. And if you didn't recognize our opening voice this week, that of course was our good

02:05.540 --> 02:07.120
friend, Not Theory, returning to the show.

02:07.960 --> 02:10.660
God, you were recording already? I feel so violated.

02:10.960 --> 02:13.600
Well, I didn't record that other stuff we were talking about, you know.

02:13.600 --> 02:16.280
Oh, that's the stuff I wanted people to know about.

02:16.460 --> 02:18.180
Well, that might end up on the outtakes, we'll see.

02:18.780 --> 02:19.100
Word.

02:19.760 --> 02:25.980
But, uh, let's see, 192, I already said that, today is, uh, April 17th, 2007.

02:26.980 --> 02:31.360
Uh, I am Diggy, back with you once again. That's gonna be, I'm gonna change my name every week

02:31.360 --> 02:38.260
to something like Buff Daddy. So this week I'm Diggy, next week I'll be Doogie, then I'll

02:38.260 --> 02:39.740
be, I don't know, I'll figure it out.

02:40.200 --> 02:40.520
By then...

02:40.520 --> 02:41.560
You'll be Dougie, like Dougie Fresh.

02:41.560 --> 02:46.100
By then it'll be time to bring back, um, Buck Dangler anyway, so, whatever.

02:47.500 --> 02:49.040
Bow, chicka, bow, bow.

02:49.700 --> 02:54.520
Alright, housekeeping section this week, um, I don't, I got nothing. I got nothing. You

02:54.520 --> 02:59.120
got any kind of housekeeping for, um, for Bell's Mind, or should we wait until later on in

02:59.120 --> 02:59.840
the program for that?

03:00.400 --> 03:05.280
We will wait as there is a tie-in to the subject of the whole show.

03:05.500 --> 03:06.960
A segue, if you will.

03:07.500 --> 03:07.900
Segue!

03:07.900 --> 03:13.440
All right, so, boy, that's a throwback to episode, like, what? Actually, I think that

03:13.440 --> 03:14.500
goes back to RFA days.

03:14.760 --> 03:16.000
Yeah, I'm pretty sure it was RFA.

03:16.100 --> 03:22.220
Yeah, wow, boy, that's a long time ago. I still don't have a segue. How much are those

03:22.220 --> 03:22.680
things now?

03:23.260 --> 03:26.300
I think, had it really gotten down all that much? I didn't think so.

03:26.560 --> 03:27.160
I don't know.

03:27.160 --> 03:35.020
I can look it up while you're, uh, drinking my sweet iced tea. And taking us into the email.

03:35.020 --> 04:04.480
And we are back from, uh, to do some email. And I guess we'll start off, let's see, what order

04:04.480 --> 04:08.120
should I do the email in? Okay, I'm going to start off with this first email from Zelle.

04:08.300 --> 04:10.800
Unless you actually already have the price up there by now.

04:11.640 --> 04:13.120
Uh, I'm getting there.

04:13.340 --> 04:13.740
All right.

04:13.740 --> 04:15.420
Oh, these guys are in...

04:15.420 --> 04:16.900
You fail at the interweb.

04:17.580 --> 04:23.220
I did fail at the interweb. Oh, these guys are selling the new Segway. Oh, shit. I've never

04:23.220 --> 04:23.760
seen it before.

04:24.200 --> 04:26.180
What's the difference between the new Segway and the old Segway?

04:26.700 --> 04:28.640
It has cooler wheels on it.

04:28.840 --> 04:30.020
Is it turbo or something?

04:30.960 --> 04:34.700
No, I think it's like, uh, yeah, it's all-terrain. That's what it is.

04:35.580 --> 04:38.160
Nice. You know, I want to Segway. I want to Segway.

04:38.260 --> 04:39.740
I have a lot of different versions of this thing.

04:39.980 --> 04:41.560
I want to Segway with hydraulics.

04:42.400 --> 04:43.260
Oh, yeah.

04:43.260 --> 04:44.980
Yeah, baby. I'll be like, boom.

04:45.920 --> 04:48.380
I'll be bouncing along left to right. Boom.

04:50.120 --> 04:50.940
Pimped out.

04:51.280 --> 04:52.360
Tricked my Segway out.

04:52.360 --> 04:55.740
All right. Well, first email this week comes from Zell.

04:56.300 --> 04:57.040
Zell says,

04:58.000 --> 05:02.820
While I cannot think of any way to try and increase your bandwidth on an internet connection with

05:02.820 --> 05:07.620
six different adapters, I do know that NVIDIA's newest motherboard makes it possible to do

05:07.620 --> 05:13.820
so with two Ethernet cards. In the NVIDIA N4 6000 motherboard, you can cheaply do that.

05:14.760 --> 05:18.840
And he's got a URL here, but it's NVIDIA.com. You guys can find that pretty easily.

05:18.840 --> 05:25.580
The NVIDIA 600 series, they call it, quote, dual net, a.k.a. really cheap way to add another

05:25.580 --> 05:31.140
pipe without getting some insane $10 billion Cisco 8000 series router. I'm not sure if this

05:31.140 --> 05:35.220
would work with two wireless adapters, but it definitely is a cheaper option to get more

05:35.220 --> 05:38.220
bandwidth and redundancy. Cool stuff.

05:38.940 --> 05:44.360
P.S. Your show owns. I say that you and RBCP from phonelosers.org get together and make

05:44.360 --> 05:52.200
a crazy awesome freaking podcast. Well, um, what do you think about that?

05:53.100 --> 05:59.240
A crazy awesome freaking podcast. Well, um, I know that you're not really too much of a

05:59.240 --> 06:04.520
freak, and despite what some people who know me might think, I'm not much one of, not much

06:04.520 --> 06:05.480
of one either, so.

06:05.660 --> 06:09.800
Aren't you the, what about the whole, despite what you think freaking is not dead thing?

06:10.360 --> 06:13.500
Freaking might not be dead, but I don't really know shit about it.

06:14.080 --> 06:16.860
You're supposed to be the savior of freaking. What are you talking about?

06:17.000 --> 06:22.320
Oh, come on, come on. I have a crappy website that has a bunch of phone information on it.

06:22.400 --> 06:26.160
So you're, you've got a database of phone and freaking information.

06:26.940 --> 06:30.780
Yeah, the whole, I'll go into the history of Bell's Mind at some point, but basically,

06:31.320 --> 06:35.840
um, I did Bell's Mind kind of as a favor to everybody in the, in the scene who was into

06:35.840 --> 06:40.580
freaking, uh, back in the day. And I've been maintaining it ever since. I've loved stuff

06:40.580 --> 06:44.380
about freaking, but I wouldn't consider myself, you know, master, super leader, a freak or

06:44.380 --> 06:44.600
anything.

06:45.080 --> 06:48.740
Was this back in the days when we were young, not a kid anymore?

06:49.900 --> 06:51.980
Sometimes I wish something, I don't know.

06:51.980 --> 06:58.320
Oh, yes, I owed you on the air. Yes, I got one by you. All right.

06:58.320 --> 07:05.620
Oh, some days I sit and wish I was a kid again. You don't remember? Anyway, uh, what'd you

07:05.620 --> 07:06.320
find out on the Segway?

07:07.800 --> 07:10.200
Nothing. They don't have prices online. You got to call them for a quote.

07:10.340 --> 07:12.720
Damn, that means they're expensive, but they can't even put a price online?

07:13.520 --> 07:14.140
Yeah, that's why.

07:14.160 --> 07:14.960
Did you try eBay?

07:16.340 --> 07:19.800
Uh, eBay's, eBay's got them, but I didn't know that we were going to go for, uh...

07:19.800 --> 07:25.400
Well, how much can I get, like, a ghetto used, um, you know, used by a little old lady who

07:25.400 --> 07:28.980
Segwayed to the grocery store once every two weeks or bingo or something?

07:29.500 --> 07:32.520
Oh, you want a Seg Hooptie, something that's just jacked up.

07:32.520 --> 07:33.240
That's right.

07:34.000 --> 07:35.720
Hooptie rolling, muffler dragging.

07:38.680 --> 07:40.160
All righty, all righty, let's see.

07:40.400 --> 07:40.720
Suspension.

07:42.300 --> 07:46.160
They don't have a buy-in-out. They just, they all, they're up for bidding, but they have

07:46.160 --> 07:48.940
no buy-in-out price, and none of them are close to, uh, the finish.

07:49.800 --> 07:53.080
Damn, the internet is not cooperating with our research here.

07:53.180 --> 07:57.720
Nah, the closest one I see is at, like, almost $1,700, but there's a day left to go.

07:59.400 --> 08:02.020
$1,700, and there's a day left to go. Hmm.

08:03.180 --> 08:05.780
Oh, man, that could go anywhere within 24 hours.

08:06.160 --> 08:09.160
Would you buy one? Would you buy one? How much would you be willing to pay for a Segway?

08:10.140 --> 08:10.660
Um...

08:10.660 --> 08:11.540
Would you pay $1,700?

08:12.320 --> 08:14.520
I would say somewhere in the neighborhood of zero.

08:15.040 --> 08:15.900
You wouldn't have one?

08:16.840 --> 08:19.780
I would, you know, give or take, um...

08:19.780 --> 08:20.920
You know, zero.

08:21.440 --> 08:21.760
Hmm.

08:23.100 --> 08:28.300
No, you know what? I saw, I was in D.C. recently, and I saw people riding around on them, and

08:28.300 --> 08:32.820
I don't know, they look kind of cool, but if it was one of the cool, like, all-terrain

08:32.820 --> 08:36.940
ones, uh, yeah, I would spend maybe $1,700 on it, I guess. Why not?

08:37.220 --> 08:41.280
Yeah, but if it was all-terrain, it would kind of defeat the point to be riding it around

08:41.280 --> 08:43.720
D.C. You need to take that shot up and...

08:43.720 --> 08:46.440
No, no, no, I'm saying that's where I saw it, and it was cool, but I would want the all-terrain

08:46.440 --> 08:48.860
one so that I could go and own noobs with it.

08:49.460 --> 08:50.140
Pwned noobs.

08:50.860 --> 08:51.140
Yeah.

08:52.200 --> 08:52.520
Huh.

08:52.520 --> 08:53.320
That's what it's all about.

08:54.080 --> 08:54.740
Pwned noobs?

08:55.340 --> 08:55.660
Yeah.

08:55.940 --> 08:57.720
Can you look cool on a Segway, though, honestly?

08:59.580 --> 08:59.860
Um...

08:59.860 --> 09:02.880
Does it, do you look like when you're, is it kind of like riding a moped? Do you look

09:02.880 --> 09:05.380
like really kind of lame when you're riding a Segway?

09:07.000 --> 09:11.360
I guess. The cops in D.C. don't really look lame because they have guns and they'll just

09:11.360 --> 09:11.700
kill you.

09:12.120 --> 09:15.940
Well, yeah, well, that helps, but what about the ordinary people?

09:17.160 --> 09:20.400
Oh, yeah, they look like morons because they've got to wear helmets and there's all this safety

09:20.400 --> 09:22.920
equipment and nonsense. They look totally ridiculous.

09:22.920 --> 09:24.520
You have to wear a helmet with us? Is that a law?

09:25.340 --> 09:29.800
Not a law, but this rental place that these people were touring with, they had to wear a helmet.

09:30.260 --> 09:33.300
Yeah, that's probably liability insurance thing, huh?

09:33.920 --> 09:34.240
Yeah.

09:34.580 --> 09:38.320
If I got one, I'd wear a helmet and I'd wear, like, goggles and I'd put a scarf around my

09:38.320 --> 09:41.780
neck and I'd, like, starch it so that it looks like I'm going really fast all the time.

09:44.000 --> 09:48.360
And I'd wear, like, a cape in some shit and I'd put a big wire in it so that it looks like

09:48.360 --> 09:49.900
I'm flying along at full blast.

09:51.360 --> 09:53.400
Wow, you really have serious issues.

09:55.880 --> 09:59.340
It'd be pretty cool, though, but you need to have sound effects with it, too, so it sounded

09:59.340 --> 10:00.300
good, like, doing all of that.

10:00.540 --> 10:02.900
Well, don't these things have, like, sound systems and whatnot in them?

10:02.920 --> 10:03.880
I could play sound effects.

10:04.560 --> 10:04.940
All right.

10:05.940 --> 10:06.280
I don't know.

10:06.280 --> 10:09.600
You know, I'm not really as much of an expert on segues as you'd think.

10:12.240 --> 10:13.880
Like, either one of us know jack shit.

10:13.940 --> 10:15.640
I don't even know if I could spell segway.

10:15.640 --> 10:16.640
All right.

10:17.640 --> 10:18.700
I can tackle that off.

10:18.900 --> 10:21.260
Well, now we totally ruined Zell's email here.

10:21.320 --> 10:23.340
Let me get back on task here.

10:23.740 --> 10:26.180
Have we been drinking or something before the show?

10:26.740 --> 10:31.180
No, I've had, like, 28 cups of tea, but they're all decaffeinated, so it doesn't really explain

10:31.180 --> 10:31.300
it.

10:31.420 --> 10:33.240
Okay, mine aren't decaffeinated, so.

10:34.540 --> 10:37.940
I've already had a pretty good glass of tea since we've been started.

10:38.040 --> 10:39.600
It's only 10 minutes into the show, if that.

10:39.600 --> 10:45.300
All right, anyway, yeah, one, I am not a freak, of course, so me on a freaking podcast would

10:45.300 --> 10:47.020
be pretty freaking pointless.

10:47.440 --> 10:49.760
Oh, that was such a bad pun and so accidental.

10:50.080 --> 10:51.680
Why would you even bother to make that joke?

10:51.780 --> 10:53.220
I did not do it intentionally.

10:53.360 --> 10:53.960
I really didn't.

10:54.020 --> 10:57.620
I said freaking because I didn't want to say fucking because people bitch about me cussing

10:57.620 --> 10:58.160
on the show.

10:58.160 --> 11:03.840
So then when I tried to catch myself and say freaking, it came across as a horrible, like,

11:03.980 --> 11:08.340
that's almost, I think that is almost as bad as a black ratchet joke, but not quite.

11:09.600 --> 11:10.400
Not quite.

11:11.620 --> 11:17.560
So anyway, one, not a freak, and two, I'm not sure, Giselle, if you know this already, but

11:17.560 --> 11:22.040
the PLA guys, they already have their own show, so go over there and check that out.

11:22.160 --> 11:30.160
I don't know that it's really freaking so much as fucking with people, but it's funny, so go

11:30.160 --> 11:30.980
check that out.

11:32.900 --> 11:39.300
And yeah, RBCP and I don't really know each other at all, so that's probably not going to

11:39.300 --> 11:39.540
happen.

11:40.080 --> 11:44.880
But, on to the motherboard and the topic from last week, and I don't know if you heard

11:44.880 --> 11:50.500
last week's show yet, or ever, but last week somebody had written in asking about sharing

11:50.500 --> 11:56.800
network capabilities and whatnot, so these people are replying to it.

11:57.320 --> 12:01.020
He's saying about that there is a motherboard that you can buy to do it.

12:01.020 --> 12:04.900
Now, that's fine that maybe technically the motherboard can support it.

12:04.960 --> 12:07.160
It's got the dual net or whatever this thing is called.

12:07.160 --> 12:09.240
That's fine from a technical standpoint, I guess.

12:09.860 --> 12:15.880
But logically, I don't see where you would ever really apply these, especially in a home

12:15.880 --> 12:16.360
environment.

12:16.700 --> 12:18.880
I mean, this particular motherboard, I did look it up.

12:19.680 --> 12:20.960
It's some kind of gaming motherboard.

12:21.100 --> 12:21.700
It's a high-end.

12:21.780 --> 12:23.120
I think it's a little under 200 bucks.

12:23.680 --> 12:25.040
It's a gaming motherboard.

12:25.280 --> 12:29.800
And I don't know, for you to have two Ethernet connections coming in, where are they going

12:29.800 --> 12:30.600
to be coming from?

12:30.600 --> 12:35.220
I mean, you've got to have two connections of some kind, two different cable modems, two

12:35.220 --> 12:36.620
DSL lines coming in.

12:37.240 --> 12:40.120
Well, I mean, if you have two different cable modems, you're still on the same cable network.

12:40.240 --> 12:44.400
If you have two DSL lines, then maybe that'll work for you, but it seems kind of pointless

12:44.400 --> 12:44.740
to me.

12:44.840 --> 12:45.500
Well, that's just it.

12:45.540 --> 12:48.500
If you're going to have two cable modems, they have to be independent of each other, and

12:48.500 --> 12:54.880
you're going to pay for two different connections, and the cable company has to throttle two different

12:54.880 --> 12:58.660
pipes into your home, and I don't know what you would gain out of that.

12:58.780 --> 13:01.420
I mean, at least, I don't know, I guess it depends on the cable company.

13:01.500 --> 13:05.460
My cable company, which actually, as far as the Internet goes, is Roadrunner, I think,

13:05.500 --> 13:06.580
is outsourced to them.

13:07.780 --> 13:09.660
They offer like three or four different levels.

13:09.660 --> 13:17.100
So instead of adding a second level of it, I would just upgrade to the nine or 12 megabit

13:17.100 --> 13:21.580
per second connection instead of trying to double up on two fives or something like that.

13:21.580 --> 13:25.160
So logically, it doesn't make much sense to me.

13:25.200 --> 13:26.080
Same thing with the DSL.

13:26.140 --> 13:28.080
You'd have to pay for two different DSL lines.

13:28.840 --> 13:33.120
I mean, the money that you're spending there, it's not free.

13:33.360 --> 13:36.860
I mean, so the money you're spending there, I don't see where financially you'd get much

13:36.860 --> 13:37.160
benefit.

13:37.260 --> 13:41.280
If you need that much bandwidth for whatever you're doing, particularly for the upload,

13:41.380 --> 13:46.180
and most of those are download-only speeds, remember, so I don't know what you'd gain

13:46.180 --> 13:46.700
out of that.

13:46.760 --> 13:51.520
If you need that much bandwidth at home, then you should be looking to co-locate a box somewhere

13:51.520 --> 13:54.840
or get a dedicated server in a data center somewhere.

13:57.760 --> 13:58.560
Can I get an amen?

13:59.900 --> 14:01.440
Yeah, I would tend to think so.

14:01.520 --> 14:05.760
And without proper routing support on the ISP side, it's not going to do you much good

14:05.760 --> 14:06.020
anyway.

14:06.180 --> 14:10.340
Like all the fancy stuff you'd want to do involving having multiple network cards and

14:10.340 --> 14:11.980
all that, you're just not going to be able to do.

14:12.400 --> 14:14.660
Yeah, well, that's just it.

14:14.760 --> 14:19.340
It's really not something that can be done easily, we'll say, even remotely easily.

14:19.340 --> 14:24.060
And actually, I think this is a good segue into our next email from RHNNet.

14:25.500 --> 14:31.580
RHNNet says, hey, StankDog and Not Theory, I've been listening to the show for a long time

14:31.580 --> 14:32.620
and really enjoyed it.

14:32.760 --> 14:33.740
Keep up the great work.

14:34.100 --> 14:39.200
On episode 191, Stank talked about using multiple network connections to acquire more bandwidth.

14:39.200 --> 14:46.080
This is definitely possible if one is connecting multiple times to the same network, although

14:46.080 --> 14:49.120
a connection does not automagically go over both.

14:49.480 --> 14:54.140
However, if you have a switch or Linux box on both ends that supports trunking, then you

14:54.140 --> 14:54.500
can.

14:54.500 --> 15:06.260
Some useful sites are, and he gives a tiny URL, to BMWWO and tinyurl29NNRW.

15:06.700 --> 15:09.580
I do this on my Gen 2 boxes and it works great.

15:09.780 --> 15:11.320
iPod and Astro support soon.

15:11.880 --> 15:14.060
Now, for multiple internet connections, i.e.

15:14.060 --> 15:18.980
multiple gateways, it can be done, although you cannot have two 5 megabit per second pipes

15:18.980 --> 15:21.940
and expect to download at 10 megabits per second.

15:22.980 --> 15:28.680
Rather, two 5 megabit per second downloads, although downloading two parts of the file at

15:28.680 --> 15:29.520
once would work.

15:30.120 --> 15:40.540
Some good places to start are tinyurl2ad3ow and tinyurl2ho4v6.

15:41.040 --> 15:42.620
Thanks for the show.

15:43.040 --> 15:45.160
That was RHNNet.

15:45.160 --> 15:51.040
Now, I think I fumbled through that email, but I think he was kind of alluding to what

15:51.040 --> 15:56.580
you were saying as far as you having to have the right equipment and the switching backbone

15:56.580 --> 16:00.740
behind there to make sure that it's handling the traffic the way you want it to.

16:01.180 --> 16:04.780
And since a home user, most of that stuff is out of your hands and out of your area of

16:04.780 --> 16:05.160
control.

16:06.280 --> 16:10.820
Yeah, so I don't know how that gaming motherboard really does anything exciting with Dual Mix.

16:10.820 --> 16:15.740
Yeah, I don't, the only thing I can think is one going out to your internet connection

16:15.740 --> 16:19.500
and the other one going to some sort of internal network of some kind, but of course you're

16:19.500 --> 16:21.520
not, that's not affecting your bandwidth.

16:21.760 --> 16:25.580
I mean, I don't get that, I don't see what that motherboard's for either, truthfully.

16:26.580 --> 16:28.540
I don't know, maybe somebody will write in and tell us.

16:29.120 --> 16:29.760
I'm sure they will.

16:29.760 --> 16:30.140
And we'll see if they're stupid.

16:30.540 --> 16:33.720
Well, I think we might get a lot of email for this show because when we go into our topic

16:33.720 --> 16:37.420
later on, we're going to probably prove our ignorance on us something, but we'll see.

16:37.420 --> 16:43.800
Oh, and also this, from RHNNet, he had a very clever email introduction, so I do appreciate

16:43.800 --> 16:44.060
that.

16:44.120 --> 16:45.100
That was not lost on me.

16:45.580 --> 16:51.360
Some PHP code in there to kind of dynamically assign the users, so that was kind of cool.

16:51.540 --> 16:55.520
And hopefully these links that he sent are interesting, but again, it's a lot of work

16:55.520 --> 16:59.440
for something that's just going to have so many problems along the way, and even if you

16:59.440 --> 17:02.720
got it working, the cost of what it is, I don't see it happening.

17:02.820 --> 17:04.000
Home user, not really.

17:04.000 --> 17:09.100
The businesses, yeah, they can financially justify it somehow, but a home user, not so

17:09.100 --> 17:09.360
much.

17:11.500 --> 17:15.100
And our last email this week comes from Stack Smasher.

17:15.540 --> 17:21.180
I read this email on the show last week, however, I thought that considering my present

17:21.180 --> 17:25.020
company, that I could read this again on the email this week and let him respond to it.

17:25.380 --> 17:33.240
Stack Smasher said last week, any word on when, if ever, www.freakfactor.net will be back.

17:33.240 --> 17:35.920
Thanks, and as always, keep up the good work.

17:36.860 --> 17:41.500
So, yeah, give me the opportunity now to read it again and pose the question to you, not

17:41.500 --> 17:47.460
theory, when will Freak Factor, not just the website, www.net, but when will Freak

17:47.460 --> 17:52.380
Factor the show, the Freak Factor, the experience, when will it all be back?

17:53.080 --> 17:53.420
I don't know.

17:53.460 --> 17:56.180
To tell you the truth, I've never heard of it, so I'm reading their website now.

17:56.180 --> 17:59.020
I don't know.

17:59.360 --> 18:00.200
Aboutus.org?

18:01.920 --> 18:05.920
Well, hey, Freak Factor.net, it has been up for a long time, and as you can tell, it

18:05.920 --> 18:07.900
hasn't really changed pretty much ever.

18:08.360 --> 18:08.760
We can't?

18:09.060 --> 18:10.440
Actually, no, that's not true.

18:10.860 --> 18:13.060
I changed the phone number at some point.

18:13.820 --> 18:14.560
True, yep.

18:14.600 --> 18:16.080
When the Bell's Mind number changed.

18:17.040 --> 18:17.800
That was it.

18:17.800 --> 18:22.180
But, okay, Freak Factor is on its way.

18:22.320 --> 18:25.480
I've said that before, and I know I've said that I've said that before.

18:25.680 --> 18:29.920
And we've said that before on your behalf, because you told us to say that it was coming.

18:31.120 --> 18:31.380
Yeah.

18:31.580 --> 18:34.320
Well, in my defense, it still is coming.

18:35.440 --> 18:36.440
It's just not there yet.

18:37.640 --> 18:38.040
Well.

18:38.040 --> 18:44.520
There have been significant updates and some serious progress towards getting Freak Factor

18:44.520 --> 18:44.880
running.

18:46.260 --> 18:51.580
Freak Factor, when the show is actually live, is going to be done through the Bell's Mind

18:51.580 --> 18:54.840
webpage for technical reasons that I'll explain later.

18:56.120 --> 19:00.940
But, I don't know, I've had a lot of free time lately, so I figured that I would spend it

19:00.940 --> 19:01.540
working on that.

19:01.760 --> 19:02.060
What's that?

19:02.060 --> 19:06.420
You can actually see some of the progress that has been made towards it and get kind of

19:06.420 --> 19:11.840
a feel as to how it's going to look by going onto the Bell's Mind website, going to the

19:11.840 --> 19:17.920
NPA NXX search, and if you have a Bell's Mind account, logging in and checking out, there's

19:17.920 --> 19:20.020
a tab that will pop up that says PBX status.

19:20.780 --> 19:26.120
And the new Freak Factor is going to be using the same type of, like, Ajax, refreshing, fancy

19:26.120 --> 19:28.260
nonsense that you see on that page.

19:28.400 --> 19:30.140
If you don't have an account, you can't check it out.

19:30.240 --> 19:30.660
It's too bad.

19:30.960 --> 19:32.960
But, I'm working on getting the registration up and running.

19:33.300 --> 19:36.340
Registration between Freak Factor and Bell's Mind will be shared.

19:36.420 --> 19:40.180
So, if you have a Bell's Mind account, it'll be also your Freak Factor account.

19:41.020 --> 19:44.300
So, when you log in, you'll see your Freak Factor credentials, and then you can call it

19:44.300 --> 19:46.080
DBX and get it all together.

19:46.180 --> 19:50.180
It'll be kind of like DDP's own little Passport, because everybody loves Passport.

19:50.240 --> 19:51.320
Single sign-on.

19:51.900 --> 19:53.380
Yeah, single sign-on.

19:53.600 --> 19:58.340
And, you know, we'll later integrate it with Passport and Google and Yahoo.

19:58.800 --> 20:00.540
So, we only need one Passport.

20:00.700 --> 20:01.760
And the forums.

20:01.760 --> 20:04.100
And the forums, of course.

20:04.400 --> 20:04.760
Of course.

20:06.760 --> 20:07.800
So, yeah, that's about it.

20:08.000 --> 20:12.340
I can't, you know, I would love to get a date, but I'm done with trying to say, oh, it'll be

20:12.340 --> 20:13.960
done in three weeks or something like that.

20:14.020 --> 20:18.320
If you want to know when it's going to be done, basically, go to Bell's Mind, watch the

20:18.320 --> 20:24.080
progress that's being made on the PBX status page, and eventually there will be a, you know,

20:24.080 --> 20:30.360
a silly little blog posting, because everybody loves blogs, explaining when Freak Factor's

20:30.360 --> 20:30.900
almost done.

20:31.040 --> 20:34.960
And I'm going to probably ask a few people to help me test it out.

20:35.440 --> 20:41.740
So, once it gets around that time, I will pick a few people to help us out, and we'll

20:41.740 --> 20:43.400
get to testing it and see how it works.

20:43.660 --> 20:45.080
But, I don't know.

20:45.160 --> 20:47.640
As of right now, it's close, but not close enough to get a date.

20:48.700 --> 20:49.840
Very nice.

20:50.360 --> 20:51.580
Very nice, I like.

20:52.340 --> 20:53.640
Wow are you, huh?

20:54.080 --> 20:57.940
All right, well, I've been playing around and testing it.

20:57.960 --> 20:58.780
I think it's pretty cool.

21:00.140 --> 21:01.260
Let's just make it happen.

21:02.200 --> 21:03.720
I'm trying.

21:04.080 --> 21:05.200
I'm just going in.

21:05.480 --> 21:08.800
As far as the, and what is this free time of which you speak?

21:08.880 --> 21:10.280
I'm not familiar with this term.

21:11.200 --> 21:14.040
Ah, well, you have free time, don't you?

21:14.200 --> 21:14.720
Come on.

21:14.780 --> 21:15.420
This is it.

21:15.520 --> 21:17.600
Recording this show is my free time.

21:18.120 --> 21:18.800
Oh, wow.

21:18.920 --> 21:20.140
Well, um.

21:20.620 --> 21:24.020
And it's why there wasn't a show there for the last two or three weeks, because I

21:24.020 --> 21:25.200
didn't have any free time.

21:26.540 --> 21:30.500
Well, I've got to tell you, I quit my job in December, and I haven't really looked back.

21:30.640 --> 21:31.040
Nice.

21:32.660 --> 21:33.320
How's that feel?

21:34.440 --> 21:37.940
Um, it's pretty much the best feeling I've ever had in my entire life.

21:38.480 --> 21:39.060
I'm having nothing.

21:39.480 --> 21:42.760
However, you still force yourself to work 20 hours a day.

21:43.960 --> 21:44.400
Somehow.

21:44.400 --> 21:47.480
Ah, you know, I keep myself busy.

21:47.880 --> 21:48.460
There you go.

21:48.920 --> 21:52.080
But hey, a lot of it, a lot of it's all tied in.

21:52.140 --> 21:53.400
It's all entangled together.

21:54.920 --> 21:59.860
Well, and, and, yeah, actually, we, we've, this is something you and I talk about all

21:59.860 --> 22:07.300
the time anyway, about, you know, for example, I, I hate learning a new language or, or doing

22:07.300 --> 22:11.960
something where I have to do hello world type applications and bullshit like that and fucking

22:11.960 --> 22:14.260
towers of Hanoi and, and this other crap.

22:14.500 --> 22:19.300
I'd rather jump into something and start doing it and learning it and actually building an

22:19.300 --> 22:22.580
application or something useful with that technology.

22:22.680 --> 22:29.280
And even if I'm not building something specifically like a project of some kind, I'm working on

22:29.280 --> 22:33.300
code and I'm thinking of how I can apply it, how, try to write the code in such a way

22:33.300 --> 22:36.700
to be reusable so that we can use it for other projects.

22:37.100 --> 22:42.660
So that's kind of a good segue, I guess, because you mentioned earlier about changing

22:42.660 --> 22:46.180
in, uh, the change in technology over on Bell's Mind and some of the stuff that you're

22:46.180 --> 22:49.200
doing, which will segue into our topic this week.

22:49.440 --> 22:50.180
Does it not?

22:51.340 --> 22:52.560
Um, possibly.

22:52.940 --> 22:56.540
I'm afraid I'm just going to get a lot of hate mail, um, for my choice.

22:56.540 --> 23:02.700
Actually, if people have checked out the, uh, the Bell's Mind blog, um, they've probably

23:02.700 --> 23:04.580
seen that there's been a change from PHP.

23:05.300 --> 23:09.180
Um, there is no more PHP code running Bell's Mind site.

23:09.820 --> 23:13.320
I don't know if people are going to be upset about that or not, but there are very good

23:13.320 --> 23:14.100
reasons behind it.

23:15.300 --> 23:18.300
Well, if it's not running PHP, what is it running?

23:19.540 --> 23:21.160
Well, it's not running PHP, of course.

23:21.260 --> 23:25.080
Like you just said, it's not running Ruby on Rails because we've already been through that

23:25.080 --> 23:28.920
and, but he's told me I'm a moron and the Ruby on Rails is the greatest thing ever, but

23:28.920 --> 23:30.020
I still say that they're wrong.

23:30.300 --> 23:35.280
Well, the only other option that comes to mind is that very topic that you hate so much

23:35.280 --> 23:39.940
and you've spoken about on the show for years that you despise, so I know it couldn't possibly

23:39.940 --> 23:42.580
be anything Java related, could it?

23:43.120 --> 23:45.060
No, no, I don't really think so.

23:45.060 --> 23:48.880
As a matter of fact, now that you've said that, I don't even remember what language the

23:48.880 --> 23:51.000
site's running, so I'd rather just not talk about it.

23:51.740 --> 23:55.060
Okay, well, this week's show was brought to you by...

23:55.060 --> 24:02.880
Oh, no, of course, that unfortunately has become the fact of the matter, isn't it?

24:02.880 --> 24:05.240
That you are incorporating some Java.

24:05.860 --> 24:07.360
Well, now, see, actually, here's the thing.

24:07.420 --> 24:08.960
Here's what I want to talk about on the show tonight.

24:09.620 --> 24:16.860
Because I hate, well, yeah, I don't really care for Java too much, mostly because I find

24:16.860 --> 24:24.840
the whole Java world, the whole Java environment, not technical environment, the whole Java sphere,

24:24.980 --> 24:27.380
I don't know, to be insanely confusing.

24:27.380 --> 24:36.900
And the whole write-once-run-anywhere thing, I think, is such a joke, such an absolute misnomer.

24:37.760 --> 24:40.240
I don't know, I'm not, I still don't get Java.

24:40.320 --> 24:47.900
I see some of the applications of it on a case-by-case basis, but I still get confused as hell by Java.

24:48.140 --> 24:52.800
Now that you have been playing around with some of this stuff lately, are you feeling more comfortable

24:52.800 --> 24:55.640
with Java on a serious...

24:55.640 --> 24:58.680
I'm feeling more comfortable with programming in Java, but if you ask me the difference

24:58.680 --> 25:03.740
between any version of Java and any other version, I would tell you that I have no idea.

25:04.080 --> 25:07.740
And I probably won't have any idea, because I've been doing Java programming, and I haven't

25:07.740 --> 25:08.780
needed to know the difference.

25:09.060 --> 25:11.060
So when I need to know the difference, I'll learn it.

25:11.120 --> 25:12.260
But until then, I don't care.

25:12.260 --> 25:17.300
Well, and that's kind of my experience as well.

25:17.560 --> 25:23.060
I, for those who don't know, I do a lot of my programming, I do database programming, mostly

25:23.060 --> 25:23.540
in Oracle.

25:24.040 --> 25:28.020
And I know that Oracle is getting more and more tied in with Java.

25:28.120 --> 25:31.600
They've already got a very strong relationship, we'll say, with Sun.

25:31.660 --> 25:34.460
I don't know why they haven't bought Sun Microsystems by now.

25:34.540 --> 25:39.680
But anyway, the stock is like seven cents a share or something, I think.

25:39.680 --> 25:42.880
Like, it's like, it's such garbage right now, but...

25:42.880 --> 25:44.680
And it's still not even worth buying.

25:44.880 --> 25:45.160
Yeah.

25:45.480 --> 25:49.100
No, it is, I think it is around, it's still less than $3 a share, isn't it?

25:49.120 --> 25:50.640
Or somewhere around $3 a share.

25:50.800 --> 25:51.320
I don't know.

25:51.500 --> 25:52.380
I haven't checked in a while.

25:52.580 --> 25:54.300
I'm not really a Sun fan, so I don't know.

25:54.360 --> 25:55.020
Yeah, so...

25:55.020 --> 25:55.220
That'll be accurate.

25:55.620 --> 25:59.040
Anyway, yeah, Sun co-op...

25:59.040 --> 26:06.180
Oracle, I should say, cooperates very well with Sun, but Oracle is slowly adding a lot

26:06.180 --> 26:09.140
of support for Java into its database engine.

26:09.140 --> 26:13.960
You know, when the next version comes out, it's supposed to be supporting actually native

26:13.960 --> 26:19.640
Java code internal to Oracle, not separate programs that you execute through the operating

26:19.640 --> 26:23.840
system, through Solaris or through whatever, you know, whatever operating system, because

26:23.840 --> 26:28.220
Oracle also runs on Red Hat and all kinds of other Linux flavors, etc., etc.

26:28.220 --> 26:33.840
But actually, internal support, they're calling them an unfortunate name, in my opinion, JSP,

26:34.040 --> 26:35.160
or Java stored procedures.

26:35.940 --> 26:36.460
Yeah.

26:36.460 --> 26:41.800
So, yeah, we'll kind of back off that and come a little bit later to why that's an unfortunate

26:41.800 --> 26:42.800
name, in my opinion.

26:42.800 --> 26:52.080
But, but it's like within the context of programming something in Oracle, I can see the application

26:52.080 --> 26:53.280
of the language.

26:53.620 --> 27:00.740
What I don't see is why they chose Oracle and not one of any other number of languages that

27:00.740 --> 27:02.160
they could have done the same thing with.

27:02.160 --> 27:11.700
So, I don't know, it's, it's still a little, it's kind of like if you, oh, what's a good

27:11.700 --> 27:12.060
example?

27:12.160 --> 27:16.180
Like if you, what was it, wasn't, weren't people writing, didn't Quake or something come with

27:16.180 --> 27:21.240
its own internal language, some kind of C derivative where you could actually write and code your

27:21.240 --> 27:22.840
own maps and mods for the game?

27:23.500 --> 27:24.680
Yeah, they had QuakeC.

27:24.980 --> 27:25.720
Yeah, QuakeC.

27:25.840 --> 27:30.900
So, it's a language that's designed to work with that specific application.

27:31.060 --> 27:35.000
So, I understand within that context a reason to learn QuakeC.

27:35.460 --> 27:40.240
But outside of that context, I still don't see the point of using it.

27:40.260 --> 27:43.320
Now, QuakeC is an obvious example, but I feel the same way about Java.

27:44.240 --> 27:48.720
And when I say Java, I'm talking about the whole of all the different Javas and stuff like

27:48.720 --> 27:48.940
that.

27:48.940 --> 27:53.660
When we talk about individual applications of Java, that's where it gets a little, a

27:53.660 --> 27:54.160
little messy.

27:54.300 --> 27:57.640
So, I'm not even really sure where to start with this topic, to be honest with you.

27:58.380 --> 28:00.020
I mean, we can do the...

28:00.020 --> 28:05.020
I guess I'll first explain, like, how I decided one day that Java wasn't a piece of garbage.

28:05.180 --> 28:09.380
And maybe I'll even, let's go back even further than that, why I initially thought Java was

28:09.380 --> 28:10.060
a piece of garbage.

28:10.240 --> 28:10.760
Actually...

28:10.760 --> 28:12.560
I think the feds are outside your door.

28:12.620 --> 28:13.740
I hear them coming, driving up.

28:14.240 --> 28:14.620
Oh, no.

28:14.620 --> 28:19.260
Actually, I'm in Westchester County right now, and it's been raining pretty badly all

28:19.260 --> 28:21.360
day, so everywhere has been flooding.

28:21.640 --> 28:25.060
And I think there's been flooding in New York City as well, and, like, the surrounding areas.

28:25.640 --> 28:30.940
But the cops and fire department have been up and down the street all day.

28:31.000 --> 28:32.640
I don't know what they're exactly rushing to.

28:32.780 --> 28:37.680
It's probably, like, you know, things catching on fire because people's basins are flooding

28:37.680 --> 28:38.680
and their power's shorting out.

28:38.680 --> 28:41.520
I have no idea, but it's been an exciting day today.

28:41.960 --> 28:42.280
Nice.

28:42.860 --> 28:44.800
We'll probably hear a lot more of that as the show goes on.

28:45.000 --> 28:45.560
All right.

28:45.580 --> 28:46.460
It adds to the excitement.

28:47.360 --> 28:48.060
Yeah, dog.

28:48.860 --> 28:49.780
Yeah, dog.

28:50.400 --> 28:51.780
Why are you going to be stealing my shit?

28:53.260 --> 28:54.420
Oh, come on.

28:54.640 --> 28:55.060
All right.

28:55.120 --> 28:55.500
You can have it.

28:55.520 --> 28:56.100
Can you borrow your lines?

28:56.320 --> 28:57.060
You can borrow it.

28:57.620 --> 28:59.500
I thought in our relationship you share everything.

29:00.020 --> 29:01.080
Yeah, well, listen.

29:01.580 --> 29:03.680
Some of us give, and some of us receive.

29:03.760 --> 29:04.560
That's all I'm saying.

29:05.120 --> 29:06.360
Oh, ouch.

29:06.360 --> 29:07.200
Oh, burn.

29:07.200 --> 29:08.160
And physically.

29:09.480 --> 29:10.660
Why'd you got to go there?

29:11.080 --> 29:11.680
I don't know.

29:12.300 --> 29:12.720
Anyway.

29:13.860 --> 29:15.720
So let me explain.

29:16.560 --> 29:19.340
I went to school for a computer science degree.

29:19.440 --> 29:20.880
I have a bachelor's in computer science.

29:22.180 --> 29:24.880
One of my classes was a software engineering class.

29:24.960 --> 29:26.080
It was a class I didn't need to take.

29:26.160 --> 29:28.140
I just opted to take it because it sounded cool.

29:28.780 --> 29:31.800
And at the time, they were doing their software engineering and job.

29:31.900 --> 29:33.340
I think they still are, actually.

29:33.340 --> 29:36.260
It's like a really popular language for software engineering classes.

29:37.200 --> 29:39.160
So in any case, we went through all this stuff.

29:39.360 --> 29:43.240
My biggest problem with the class was that I couldn't understand anything the professor was saying.

29:43.860 --> 29:46.240
And the projects were really, really, really simple.

29:46.380 --> 29:49.940
So I just figured I was banging on Java, and it would be no big deal.

29:49.940 --> 29:57.760
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.

29:57.760 --> 30:09.460
And I was programming some, you know, spreadsheet-ish type application in Java using FWT, which is the Swing Toolkit, I think.

30:09.760 --> 30:10.220
Oh, man.

30:10.220 --> 30:10.580
That's it.

30:11.120 --> 30:11.400
Okay.

30:11.460 --> 30:12.560
Yeah, it was awful.

30:12.840 --> 30:14.980
And like I said, there was no debugger.

30:15.500 --> 30:16.700
There was no development environment.

30:16.980 --> 30:17.640
There was no nothing.

30:17.760 --> 30:21.840
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.

30:21.940 --> 30:23.020
You don't need a fancy debugger.

30:23.020 --> 30:27.420
You know, you can use print defs or system.out.println or whatever Java has.

30:28.260 --> 30:29.720
You can do all your debugging like that.

30:30.120 --> 30:30.800
Yeah, you know what?

30:31.060 --> 30:33.880
When you're developing a tool application, yeah, you can do that.

30:33.940 --> 30:36.720
But when your application starts to get bigger, you kind of grow out of that.

30:36.820 --> 30:39.860
So, yeah, for this thing, that's what I did, and I got through it.

30:40.120 --> 30:46.300
But, you know, as I started using other languages like, you know, C++, I had Voiland, C++ Builder.

30:46.640 --> 30:48.280
Like, the development environment was really slick.

30:48.280 --> 30:53.160
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.

30:53.360 --> 30:58.000
And back then, Java was so slow, it was unbelievable.

30:58.440 --> 30:59.500
That hasn't changed.

31:00.660 --> 31:02.320
Well, we'll get into that.

31:02.460 --> 31:02.700
Yeah.

31:05.260 --> 31:08.980
So, for the longest time, you know, I just, nobody could change my mind.

31:09.200 --> 31:10.500
I thought Java was garbage.

31:10.640 --> 31:12.940
I had heard, you know, there were nice development environments for it now.

31:12.940 --> 31:16.920
But, you know, I thought, okay, well, you know, for my web stuff, PHP is the way to go.

31:17.020 --> 31:21.260
And for my, you know, server-based stuff, Perl is the way to go because PHP has got a lot of modules.

31:21.420 --> 31:22.340
Perl has a lot of modules.

31:22.460 --> 31:23.980
There's a lot of example code out there.

31:24.700 --> 31:25.600
And everything's great.

31:26.080 --> 31:30.820
But then I kind of thought about it, and I was like, well, I don't really have a good development environment for PHP.

31:31.640 --> 31:34.640
Supposedly there's, you know, there's an Eclipse plug-in for PHP.

31:34.960 --> 31:39.000
But, I don't know, I've tried a bunch of things, and nothing has really worked all that well for me.

31:39.680 --> 31:42.800
So, for a long time, I had been looking for a good replacement for PHP.

31:43.580 --> 31:47.840
Then I found Ruby on Rails and realized that that was definitely not the good replacement for PHP.

31:47.860 --> 31:48.180
Now, wait a minute.

31:48.200 --> 31:49.380
You loved Ruby at first.

31:50.220 --> 31:55.000
You know, something I did, and then there were just, I'm pretty sure on the last show I had said this,

31:55.000 --> 32:01.860
but the guy who came up with Ruby on Rails made some comment about how store procedures were, you know, useless.

32:02.360 --> 32:07.600
You know, anybody who's using them is just using them because it's like an old database guy way of thinking.

32:07.600 --> 32:10.560
Which is just nonsense, you know.

32:10.980 --> 32:18.880
And his comment revolved around the fact that, you know, all applications have one interface that people are using to get to them.

32:19.040 --> 32:21.520
If you're writing a Ruby on Rails application, it's got a database.

32:21.660 --> 32:23.640
You're always accessing it through Ruby on Rails.

32:23.780 --> 32:24.820
Why do you need store procedures?

32:25.180 --> 32:26.400
That's just not true.

32:26.480 --> 32:27.140
It's not realistic.

32:27.820 --> 32:30.540
So, that turned me off to Ruby on Rails.

32:30.540 --> 32:34.080
You know, and people said, oh, you can use store procedures in Ruby on Rails,

32:34.080 --> 32:41.080
and you can violate the standards that they have to put Ruby on Rails on your old database scheme and all that stuff.

32:41.580 --> 32:42.680
Yeah, yeah, that's true.

32:42.900 --> 32:45.980
But by default, it's designed to not let you do that.

32:46.040 --> 32:47.660
Not let you do it, but make it more difficult.

32:48.160 --> 32:50.860
So, you know, why deal with the hassle?

32:51.160 --> 32:52.760
You know, it didn't really offer me anything good.

32:52.880 --> 32:57.920
It gave me a quick way to get an application up and running that looked like a canned Ruby on Rails application.

32:57.920 --> 33:02.140
But beyond that, it didn't really offer me what I wanted.

33:02.720 --> 33:04.720
So, I just dropped it.

33:04.860 --> 33:05.720
I didn't really care anymore.

33:06.260 --> 33:06.560
Gotcha.

33:07.480 --> 33:13.280
Well, and also, before we move on, I wanted to respond to one of the other comments you made that I agree with

33:13.280 --> 33:19.560
is basically error handling in general and any kind of debugging.

33:20.840 --> 33:22.720
It frustrates me all the time.

33:22.720 --> 33:27.920
Programs that I work with all the time still are in that mindset of, you know,

33:28.000 --> 33:34.100
throwing a bunch of print statements or, you know, DBMS output statements of some kind into your code

33:34.100 --> 33:38.600
so that as it cycles through there, it spits out some raw text as you go through.

33:38.700 --> 33:40.360
Like, that's a good way to debug stuff.

33:40.440 --> 33:42.040
I mean, that is so old school.

33:43.120 --> 33:44.040
And, I mean, don't get me wrong.

33:44.120 --> 33:46.740
There's been some occasions where if you really want to isolate it,

33:46.760 --> 33:49.300
you'll have to really get down in there and try that.

33:49.300 --> 33:53.400
Or if you want to display some of your variables in progress, you might want to do that.

33:53.460 --> 33:54.340
But there's so many.

33:54.480 --> 34:00.200
Modern languages have so many better, so many different and better ways of error handling

34:00.200 --> 34:04.500
that you should never have that mindset anymore, in my opinion.

34:05.580 --> 34:08.000
Yeah, it's ridiculous to think that you would do that.

34:08.080 --> 34:09.100
Now, don't get me wrong.

34:09.180 --> 34:13.180
There are environments where, you know, printf and all that stuff is the way to go,

34:13.260 --> 34:14.720
especially if something's running in real time.

34:14.720 --> 34:18.580
Like, you can't use a debugger easily on a real-time system.

34:18.900 --> 34:21.340
So you need to have stuff spitting out to the screen as it's running.

34:21.520 --> 34:25.560
But for me, I'm not developing many real-time systems.

34:26.000 --> 34:28.940
So, you know, I need a development environment.

34:29.140 --> 34:32.060
I need, like, a real way to debug my application.

34:33.020 --> 34:33.840
So, anyway.

34:34.800 --> 34:37.120
So fast forward a whole bunch of months.

34:37.120 --> 34:43.800
I took a job, and I was dealing with these devices that were programmed in Java,

34:43.980 --> 34:45.960
and everybody at the company was a Java programmer,

34:46.120 --> 34:47.940
and everybody kept telling me how great Java was.

34:48.340 --> 34:50.040
And I kept telling them, Java sucks.

34:52.580 --> 34:55.220
Well, they...

34:55.220 --> 34:56.340
Took you to task.

34:56.420 --> 34:57.520
I was a bit of a Linux guy.

34:57.600 --> 34:59.720
They needed a Linux guy to do some work for them.

34:59.720 --> 35:06.720
And so they sent me over to Germany to meet with the branch of the company that writes the Java codes

35:06.720 --> 35:09.320
for these devices that they run.

35:11.000 --> 35:14.160
I went over there, and I had told them for the longest time, I said,

35:14.260 --> 35:19.380
I will do any job at this company except Fluffer and Java programmer

35:19.380 --> 35:20.860
because they're pretty much the same thing.

35:21.600 --> 35:21.960
Okay.

35:21.960 --> 35:26.480
So, they got me over to Germany, and they said,

35:26.560 --> 35:29.220
well, we would like you to program in Java.

35:29.600 --> 35:31.060
And I was like, oh, my God.

35:31.540 --> 35:32.540
But I bit my tongue.

35:32.640 --> 35:33.320
I said, you know what?

35:33.840 --> 35:35.560
Let me see what these guys have to show me.

35:36.160 --> 35:36.440
Right.

35:36.440 --> 35:38.960
The first thing they had me do was they had me download Eclipse.

35:40.660 --> 35:43.300
Downloaded Eclipse, installed it, and then they gave me the source code.

35:44.060 --> 35:45.080
Eclipse is what now?

35:45.140 --> 35:45.400
Explain.

35:46.100 --> 35:49.620
You know, people say Eclipse is an editor, but Eclipse is not an editor.

35:49.800 --> 35:51.680
Eclipse is a software development kit.

35:51.680 --> 35:55.040
Well, you can build editors, but you can actually build other applications

35:55.040 --> 35:56.700
that have nothing to do with editing text.

35:57.260 --> 36:02.940
So, Eclipse, people have taken Eclipse, and they've built a text editor into it

36:02.940 --> 36:06.760
and a class browser and a debugger and, like, a whole development environment

36:06.760 --> 36:10.700
for all kinds of languages, Java being the one that I think,

36:11.120 --> 36:14.320
at least from what I've seen, is the best supported.

36:14.480 --> 36:16.020
Eclipse itself is written in Java.

36:16.580 --> 36:19.740
So, therefore, it eats lots of memory, and it's very slow, but it's good.

36:20.340 --> 36:20.780
Hmm.

36:20.780 --> 36:22.040
Whatever happened to Forte?

36:23.900 --> 36:24.980
Oh, NetBeans.

36:26.120 --> 36:31.140
You know, for a long time, actually, the original DDP Freak Tools, or was it Freak Toys?

36:31.200 --> 36:31.980
No, it was Freak Toys.

36:32.260 --> 36:34.900
A long time ago, it was written in Java, J2MA.

36:34.900 --> 36:40.360
And I was using Sun 1, which was Forte NetBeans.

36:40.420 --> 36:44.660
And it seemed like every time I opened the application, it said, hey, there's an update.

36:44.760 --> 36:46.140
By the way, we've changed the name again.

36:46.560 --> 36:49.520
So, I don't know whatever happened with them.

36:49.640 --> 36:53.660
I'm sure that it's still around, but I don't know anybody that used it.

36:53.660 --> 37:02.040
The two developed environments that I know people use for Java are Eclipse and this thing called, I think it's pronounced IntelliJ.

37:02.240 --> 37:04.660
It's just spelled IntelliJ with a capital J at the end.

37:05.760 --> 37:09.680
IntelliJ is something that's paid for, and Eclipse is free and sponsored by IBM.

37:09.680 --> 37:13.680
But I've only used Eclipse, so I can't really talk about IntelliJ.

37:14.380 --> 37:14.660
Okay.

37:15.320 --> 37:15.660
So.

37:16.140 --> 37:22.240
Well, I also had the bachelor's in science, and when I had to do Java in college, we had to use Forte.

37:22.560 --> 37:25.440
And I hated every miserable second of that thing.

37:26.560 --> 37:27.220
Yeah, it was.

37:27.300 --> 37:28.000
And Tomcat.

37:28.660 --> 37:29.100
Tomcat.

37:30.080 --> 37:31.020
Web surfer.

37:31.760 --> 37:32.920
Well, actually, you know what?

37:34.380 --> 37:37.220
You know, maybe we'll get into that in just a minute or two.

37:37.540 --> 37:38.300
All right, go ahead.

37:39.160 --> 37:47.920
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.

37:47.920 --> 37:58.400
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.

37:58.600 --> 38:00.100
So this is going to be a big pain in the ass.

38:00.880 --> 38:07.900
So I took their development kit to this device, sat down, and in no time I had, you know, an application up and running.

38:08.300 --> 38:17.920
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,

38:17.920 --> 38:21.900
and then, like, control space, and it lists all of the elements in that class.

38:22.060 --> 38:22.180
Right.

38:22.180 --> 38:23.560
Like, all of that nice stuff that...

38:23.560 --> 38:24.180
All the methods.

38:25.080 --> 38:25.360
Okay.

38:25.800 --> 38:27.500
Brings up all the methods and all that stuff.

38:27.860 --> 38:33.420
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,

38:33.480 --> 38:39.800
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.

38:39.800 --> 38:43.020
So I was like, wow, this is really easy.

38:43.120 --> 38:45.180
Anybody could write applications with tools like this.

38:45.600 --> 38:45.740
Right.

38:46.680 --> 38:49.100
So, I mean, even the lowest common denominator, like me.

38:49.600 --> 38:50.000
Wow.

38:50.420 --> 38:53.420
Or I think the same thing would be said for Visual Studio.

38:54.740 --> 38:55.620
You know something?

38:55.840 --> 39:03.440
I use Visual Studio a lot, and honestly, compared to Eclipse and Java, Visual Studio is not so great.

39:03.760 --> 39:04.200
Really?

39:04.200 --> 39:13.560
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,

39:13.660 --> 39:16.380
which is more of a language thing as opposed to an environment thing.

39:17.020 --> 39:17.380
Okay.

39:18.520 --> 39:19.720
So, um...

39:19.720 --> 39:27.200
Other than the garbage collection, automatic garbage collection, I don't know what other benefit, but...

39:27.200 --> 39:28.620
Anyway, go ahead with the story.

39:28.700 --> 39:30.640
We're jumping in with so many different...

39:30.640 --> 39:31.260
Yeah, yeah, yeah.

39:31.260 --> 39:32.000
Yeah, okay, go ahead.

39:32.000 --> 39:37.800
So, so that was, you know, that was kind of it.

39:37.940 --> 39:42.920
I looked back at all of my misspent years and said, maybe Java's not that crappy.

39:43.880 --> 39:49.820
So I wrote the application, toyed around with it, was fairly impressed by what Java could do.

39:50.060 --> 39:54.240
So I started looking into other things that Java could do, like writing web applications in it.

39:54.240 --> 40:05.360
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.

40:05.440 --> 40:07.560
And I was like, oh, no, PHP is the way to go.

40:07.640 --> 40:08.740
Java servlets are junk.

40:08.860 --> 40:09.440
Java is slow.

40:09.560 --> 40:10.140
Java is crap.

40:10.240 --> 40:10.680
Blah, blah, blah.

40:10.840 --> 40:11.240
Blah, blah, blah.

40:11.760 --> 40:14.260
Yeah, well, now I'm looking at the servlets again.

40:14.260 --> 40:17.080
And servlets are actually pretty cool.

40:18.220 --> 40:23.260
Well, should we take a moment here to talk about servlets and applets and the different...

40:24.260 --> 40:24.460
Okay.

40:24.460 --> 40:30.560
And this is the thing that confuses me the most and gets me frustrated with Java is all these different terms.

40:31.020 --> 40:35.780
What's the difference between a servlet, an applet, a Java bean, you know, all these different things?

40:35.780 --> 40:38.740
Okay, well, that's kind of difficult.

40:38.920 --> 40:40.220
Like I said, I'm a Java noob.

40:40.340 --> 40:50.440
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.

40:50.960 --> 40:58.100
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,

40:58.200 --> 41:04.500
which has no methods, no parameters, no nothing.

41:04.500 --> 41:07.400
It's just an object that is just kind of like a placeholder.

41:08.500 --> 41:12.700
And then there's a Java applet and Java application and Java servlets.

41:12.800 --> 41:16.940
These things all inherit this object, and they give it different methods that you have to implement.

41:17.200 --> 41:24.300
Like for an application, you have to implement the main method, and then the main method will start your whole application running.

41:24.800 --> 41:30.020
And applet does the same thing, but I think that applets only run in your web browser.

41:30.140 --> 41:32.140
I don't know why exactly they're different from applications.

41:32.140 --> 41:37.720
I guess applets have a graphical user interface always, and applications can run on the command line.

41:37.780 --> 41:40.800
That's what I originally thought was the difference, but I could be wrong about that, too.

41:41.480 --> 41:47.280
So in any case, applets and applications, they have a main method that starts up and runs your application.

41:47.720 --> 41:51.780
Servlets are just Java code that has two entry points.

41:52.020 --> 41:54.320
One is called do get, and one is called do post.

41:54.320 --> 41:58.940
And one is called when somebody hits your servlet URL with a get request.

41:59.040 --> 42:02.160
The other one is called when somebody hits your servlet URL with a post request.

42:02.640 --> 42:03.080
That's it.

42:03.120 --> 42:12.440
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,

42:12.440 --> 42:20.460
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.

42:21.360 --> 42:21.840
That's it.

42:22.000 --> 42:24.380
I mean, that's as simple as I can make it out to be.

42:24.400 --> 42:25.120
Does that make any sense?

42:25.120 --> 42:30.520
Well, somewhat, but, you know, I wish I could get Voodoo Hal.

42:30.580 --> 42:33.120
I know he did a lot of Java development at one point.

42:33.720 --> 42:41.480
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,

42:41.580 --> 42:46.440
and explain this to me because I still don't see, like, I see on an individual basis, you know,

42:47.100 --> 42:50.360
an applet is running on the client side versus a servlet on the server side.

42:50.360 --> 42:57.820
I get that, but why would I choose, how would I make the decision of which way I wanted to do it?

42:58.300 --> 43:01.660
And, you know, then there's JSP Java server pages I mentioned earlier,

43:01.740 --> 43:06.660
which I thought was an unfortunate name for Java stored procedures as well because you can get confused there.

43:07.380 --> 43:15.140
And that's more like PHP and ASP where it's dynamically generating code or, I mean, there's just so many things.

43:15.920 --> 43:17.700
Java beans, I still don't know what that is.

43:17.700 --> 43:30.200
And J2ME, J2EE, J, all these different abbreviations, it just, it's so confusing that I, it's so frustrating and so confusing,

43:30.440 --> 43:32.700
it makes me not want to learn it, to be honest with you.

43:33.380 --> 43:34.380
Yeah, yeah, I hear you.

43:34.480 --> 43:41.720
You know, the difference between J2ME and J2SE and J2EE, well, let's go through the names first.

43:41.720 --> 43:46.340
J2SE is Java 2 Standard Edition, I think.

43:46.940 --> 43:50.220
And J2ME is...

43:50.220 --> 43:50.800
Mobile?

43:51.540 --> 43:55.020
I thought it was mobile, but somebody told me recently that it's Micro Edition,

43:55.320 --> 43:59.520
so it could be more than just for, like, mobile phones, for any type of device.

43:59.520 --> 44:07.300
And then there's J2EE, which is Enterprise Edition, which people use to build huge, bloated Enterprise apps.

44:08.720 --> 44:13.020
Now, I thought those were the names of the IDEs themselves.

44:13.160 --> 44:17.880
You would download, if you wanted to develop mobile apps or mini apps or whatever that is,

44:18.200 --> 44:21.020
you would download the J2ME IDE package.

44:21.020 --> 44:26.780
No, they just, they refer to different, you know, to different standards, like J2SE is,

44:27.440 --> 44:32.460
you can write applications in this one, these type of specific set of features available to you.

44:32.720 --> 44:34.480
Same thing with ME, same thing with EE.

44:35.000 --> 44:38.220
You know, it just means that you have different functionality available to you.

44:38.300 --> 44:46.560
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.

44:46.860 --> 44:47.720
Hmm, okay.

44:47.720 --> 44:53.200
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.

44:53.420 --> 44:58.040
Okay, so just all the objects and methods that apply to each one are the ones you'd be working with,

44:58.080 --> 44:59.720
depending on what your application is for.

45:00.260 --> 45:00.980
Right, right.

45:00.980 --> 45:01.140
Okay.

45:03.140 --> 45:06.820
So, you know, where was I?

45:06.820 --> 45:07.140
Where?

45:08.160 --> 45:12.060
We're so far, like, off topic, so I'm just confused.

45:12.240 --> 45:13.800
I don't know that we really had a topic.

45:13.920 --> 45:15.740
I think we're going to kind of freestyle the whole thing.

45:15.740 --> 45:22.440
But you were talking about using that IDE and found that you were able to develop a lot faster than you expected.

45:23.500 --> 45:23.960
Oh, yeah.

45:24.140 --> 45:32.680
So, basically, I decided that I would try to look a little bit more into Java and see what it had to offer me.

45:32.680 --> 45:40.520
And there were a few nice things that Java did for web applications that PHP doesn't do.

45:40.620 --> 45:47.920
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.

45:48.300 --> 45:52.080
So I'm just going to concede right now that I'm totally wrong.

45:52.080 --> 45:55.740
So if you want to write in and tell me that I'm totally wrong, I agree with you.

45:56.240 --> 46:01.840
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.

46:01.940 --> 46:04.620
It doesn't mean it's, you know, natively supported.

46:04.740 --> 46:08.480
It may be, you know, forcing that square peg into a round hole.

46:08.560 --> 46:14.400
Just because you can make it happen, make it work, doesn't mean it's an efficient, good, proper, secure way to do it.

46:14.400 --> 46:17.300
I mean, it may do it, but it might not do it well.

46:17.460 --> 46:18.940
And I think you can safely say that.

46:20.460 --> 46:33.920
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.

46:34.300 --> 46:40.320
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.

46:40.320 --> 46:44.840
But it just wasn't convenient because I had to, like, keep going back and forth to the server.

46:44.940 --> 46:46.720
I wanted to do everything local on my laptop.

46:47.020 --> 46:55.860
So the advantage for Java was that I could very easily just fire up the development environment and run my application locally,

46:55.980 --> 47:01.600
hook it up to that remote database over a VPN tunnel that I have, and just run the application on my laptop.

47:01.920 --> 47:03.840
And, you know, the server's not affected at all.

47:03.880 --> 47:07.120
The server isn't running any of this new untested code.

47:07.120 --> 47:13.800
So if the code freaks out and does something totally horrible, it's not going to, like, destroy the performance of the production box.

47:13.960 --> 47:15.580
So that was nice thing one.

47:16.280 --> 47:22.100
Nice thing two was the actual development environment, being able to set breakpoints and stepping through code.

47:22.240 --> 47:25.560
And actually, Java lets you change your code on the fly.

47:25.800 --> 47:33.440
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.

47:33.440 --> 47:40.720
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,

47:41.680 --> 47:43.140
I can go and change it while it's running.

47:43.200 --> 47:45.760
When I notice that I'm locked in an infinite loop, I can change it while it's running.

47:45.840 --> 47:48.300
It goes back to the top of the function, like, they're stepping through again.

47:48.300 --> 47:52.400
So I don't have to, you know, constantly restart my debugging process from scratch.

47:52.400 --> 47:55.180
So that was a really nice feature.

47:55.860 --> 48:01.580
The other really nice feature was that I could create static classes on the server.

48:01.940 --> 48:08.300
And basically what a static class is, is whenever the web server starts up and it loads all of my classes into memory,

48:08.840 --> 48:14.980
it instantiates, basically creates the static class that when any user is hitting the website,

48:15.740 --> 48:19.560
they're getting access to this one instance of this object.

48:19.560 --> 48:24.320
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.

48:24.440 --> 48:25.240
So it's very efficient.

48:25.460 --> 48:26.960
Like, everybody's hitting the same copy.

48:27.080 --> 48:33.020
Whereas with PHP, again, I could be wrong if you've got Zend and all kinds of other optimization things turned on.

48:34.520 --> 48:37.300
When somebody hits a site, it's reading that PHP file.

48:37.480 --> 48:38.300
It's parsing it.

48:38.520 --> 48:41.620
It's creating all of these objects on the fly in its own memory space.

48:41.700 --> 48:47.280
So as you have people hitting it over and over and over again, it's got to keep doing all of this work continually.

48:47.280 --> 48:52.980
Whereas with Java, you put the objects on the server, it instantiates them, they're built once,

48:53.160 --> 48:55.140
and you just hit them and pull the data out of them.

48:55.320 --> 49:05.040
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.

49:05.160 --> 49:08.420
Specifically with the beta version of the free fax code that I've been testing,

49:08.840 --> 49:13.280
the server load is a lot lower than it was with the PHP implementation.

49:13.280 --> 49:16.360
And that's not to say the PHP implementation was good and efficient,

49:16.720 --> 49:21.000
but it was very, very easy to make a good and efficient implementation of Java.

49:21.320 --> 49:24.900
So that was a big boost to me.

49:25.060 --> 49:28.380
And surprisingly responsive, too, I'll add.

49:29.360 --> 49:33.700
I was very impressed at the real-time data that I was looking at.

49:33.700 --> 49:39.180
Yeah, right now I have the settings kind of turned up as high as they can be.

49:39.280 --> 49:45.000
If you go to the Bell's mind interface and you check out the PBX status panel,

49:45.320 --> 49:47.600
that status panel refreshes once every second.

49:47.920 --> 49:58.980
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.

49:58.980 --> 50:08.420
Now, again, that wasn't very efficient, and it had to do a lot of things in the background to connect to the database

50:08.420 --> 50:13.340
and do all this other kind of stuff, and it refreshed the whole page as opposed to just refreshing part of the page.

50:13.500 --> 50:15.780
So that script was a lot heavier to start out with.

50:17.060 --> 50:22.800
But, again, this is very easy to create and very responsive.

50:23.300 --> 50:26.800
And, I don't know, it's just badass.

50:27.000 --> 50:27.760
You have to check it out.

50:27.760 --> 50:33.500
So check it out, pull up that page, sign into the PBX, and kind of navigate around the menus,

50:33.620 --> 50:37.840
and you'll see that it shows you, you know, it doesn't show you your caller ID or anything like that.

50:37.880 --> 50:43.260
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.

50:43.340 --> 50:47.500
If you're listening to RSA episode 58 like somebody was today, it's going to say,

50:47.500 --> 50:53.420
this user has been on the PBX since this time, and they're listening to RSA 58.

50:54.000 --> 50:55.960
Hit the pound key, get back out to the main menu,

50:55.960 --> 50:57.940
and it'll say that you're at the main menu.

50:58.080 --> 51:00.080
If you go into a conference, it'll say that you're in a conference.

51:01.260 --> 51:04.240
One of the neat features that you'll also notice, if you go into a conference,

51:04.380 --> 51:09.140
any conference number between 500 and 599, it'll actually show you.

51:09.200 --> 51:12.080
Those are going to be considered public conferences now.

51:12.080 --> 51:19.760
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.

51:19.980 --> 51:24.640
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,

51:24.720 --> 51:25.200
and all that kind of stuff.

51:25.200 --> 51:29.200
You mean all, you know, all damn good and well, all of them were talking at the same time.

51:29.760 --> 51:31.140
Well, yeah, of course, of course.

51:31.140 --> 51:37.600
But in theory, if they weren't all, you know, just constantly chattering and pressing touch tones

51:37.600 --> 51:43.140
and doing all that kind of nonsense, that it would do, the status would change from talking to not talking.

51:43.300 --> 51:46.520
But, yeah, probably nobody will ever see not talking on there.

51:48.120 --> 51:50.120
So whatever.

51:50.420 --> 51:51.060
That's that.

51:51.720 --> 51:53.540
So like I said, static objects.

51:53.540 --> 52:00.740
I actually have a static object that what it does is when the application is deployed,

52:00.820 --> 52:03.700
and I'll get to the deployment in a second, which was kind of where it was going initially.

52:04.380 --> 52:07.640
When the application is deployed, this object starts up, connects to asterisk,

52:07.740 --> 52:10.080
and then connects to asterisk over the manager interface,

52:10.440 --> 52:16.520
and then anytime something happens on the PBX, asterisk pushes this message to the Java application,

52:16.720 --> 52:20.340
and the Java application keeps the state of the whole PBX in memory.

52:20.340 --> 52:24.880
Whereas before, with PHP, since I couldn't start a process in the background and keep it running,

52:25.340 --> 52:29.440
I know there are ways to do it, but not as easy as there are in Java.

52:30.680 --> 52:34.180
I couldn't start a process in the background, so what I'd have to do is every time I needed the status,

52:34.220 --> 52:38.840
I wanted the status of PBX, I'd have to connect and request all the status that I want and then disconnect.

52:39.280 --> 52:45.280
Well, with Java, I just tell this thing, start a thread, listen to this connection, get the status all the time.

52:45.280 --> 52:48.500
That was performance saving bit number one right there.

52:48.500 --> 52:52.240
But that reduces the server load unbelievably.

52:52.420 --> 52:53.160
You can't even imagine.

52:54.320 --> 52:55.800
So let's think.

52:55.920 --> 52:58.000
What was the other big deal?

52:59.100 --> 53:03.820
The other thing that it does is it also handles AGI requests by a fast AGI.

53:04.140 --> 53:07.880
So again, previously I had AGI's written in Perl.

53:08.260 --> 53:11.140
And AGI is asterisk gateway interface?

53:11.740 --> 53:12.460
Yeah, exactly.

53:12.460 --> 53:17.820
Sorry, sorry, AGI is basically a way to write applications that can receive information from

53:17.820 --> 53:23.300
the user, touch tones or, you know, even voice on some of them from what I've heard, but I've

53:23.300 --> 53:23.800
never done it.

53:24.160 --> 53:27.860
So basically you can accept touch tones from people and kind of route them around.

53:27.960 --> 53:32.140
You write a program like a Perl script that says, okay, when the user hits 4, you know,

53:32.140 --> 53:34.120
go to the AMAC or whatever it is.

53:35.280 --> 53:42.880
Well, the problem with the Perl AGI's is that every time somebody goes into one of those AGI's,

53:42.920 --> 53:46.940
it has to start up Perl and then it has to start the AGI and then connect back to the PBX.

53:47.180 --> 53:53.040
Well, again, with Java, I created a static object that connects to asterisk once.

53:53.040 --> 53:57.520
And then any time somebody wants to start an AGI, it just pushes a message over that pipe

53:57.520 --> 53:58.200
that's already open.

53:58.660 --> 54:00.800
And then, you know, they communicate back and forth.

54:01.040 --> 54:06.240
And the Java AGI just processes the call for me with very, very little overhead.

54:06.380 --> 54:09.160
Nothing has to start up every time somebody connects.

54:09.600 --> 54:10.220
None of that nonsense.

54:10.440 --> 54:12.800
Just kind of, it's already loaded and it happens.

54:12.920 --> 54:16.760
The first time somebody calls the PBX, there's a slight delay because those things are like

54:16.760 --> 54:17.300
being built.

54:17.460 --> 54:19.820
But once they're built, there's no more delay for people.

54:19.820 --> 54:23.100
So that all happens when the application is deployed.

54:23.260 --> 54:24.840
So that was one of the big things that I really liked.

54:24.940 --> 54:26.540
I can start a process.

54:26.980 --> 54:28.040
I can run it in the background.

54:28.240 --> 54:30.000
I can have it do whatever I want.

54:30.260 --> 54:32.500
And I don't have to keep starting it.

54:32.540 --> 54:37.660
Every time somebody hits a page or with a cron job or something like that, it just happens

54:37.660 --> 54:38.220
by magic.

54:38.780 --> 54:41.620
You don't have to keep Perl scripts running in the background using screen.

54:41.800 --> 54:45.100
Like all of these things I have to do to get a free factor up and running, I don't have

54:45.100 --> 54:45.580
to do any more.

54:45.640 --> 54:47.600
Everything is nice and clean.

54:47.600 --> 54:53.040
Everything is encapsulated in objects, so it's very easy for me to go through and add

54:53.040 --> 54:54.460
new features and do all that kind of stuff.

54:54.940 --> 55:00.600
But in any case, the real big deal, like I was saying before, is debugging and deployment.

55:00.820 --> 55:02.000
So I've already gone through debugging.

55:02.460 --> 55:05.340
Debugging is very easy through Eclipse.

55:06.020 --> 55:07.820
Deployment is a really, really nice thing.

55:07.820 --> 55:14.620
And with the Eclipse IDE, I can take all of my files for BellsLine, all the static content,

55:15.100 --> 55:23.580
all the servlets, all this AGI stuff, and I can export it as a WAR file, which Java application

55:23.580 --> 55:26.120
is stored in JAR files, which stands for Java Archive.

55:26.120 --> 55:32.380
Well, web applications are stored in WAR files, which I believe stands for Web Archive.

55:32.380 --> 55:40.520
So what I do with the Web Archive file is I take it, I export it, and then I use a program

55:40.520 --> 55:47.380
called Unison, which then takes that Archive file and puts it in the Tomcat server, because

55:47.380 --> 55:53.000
I know you love Tomcat, puts it in its Web Apps directory, and Tomcat every once in a while

55:53.000 --> 55:53.540
will look.

55:53.540 --> 55:56.700
You know, it's like every couple of seconds or something like that.

55:57.020 --> 55:59.320
We'll look and say, oh, the WAR file's changed.

55:59.760 --> 56:03.500
I'm going to take all the old content, get rid of it, pull everything out of this archive,

56:03.840 --> 56:06.240
and put it on the server and start everything over.

56:06.840 --> 56:11.200
So anytime I need to make a change, I know that everything is there.

56:11.320 --> 56:15.620
Everything's included in this one file, and the server will shut itself down and restart

56:15.620 --> 56:18.380
cleanly just when I essentially drag that file over.

56:18.380 --> 56:25.420
So it avoids all of the headaches of, oh, did I put this file in, or did I make sure that

56:25.420 --> 56:27.600
this link matches, all that other kind of stuff.

56:28.160 --> 56:29.320
Don't have to worry about that anymore.

56:29.580 --> 56:30.600
Everything's in one file.

56:31.020 --> 56:32.700
Everything gets extracted in one shot.

56:33.360 --> 56:35.940
Overwrites the old copies so no old junk is sitting around.

56:37.180 --> 56:38.360
And again, it just works.

56:40.660 --> 56:41.000
It just works.

56:41.000 --> 56:42.120
But what do you think about STEM apples?

56:42.980 --> 56:46.380
Well, I don't know.

56:46.380 --> 56:51.140
I can't say that I've written anything worthwhile in Java, to be honest with you.

56:51.940 --> 56:57.400
When I was in college, all the stuff I did was JSP, Java Server Pages, and it was, again,

56:57.640 --> 57:06.800
a whole specific application of some type of Java, which, again, still confuses the hell

57:06.800 --> 57:07.460
out of me sometimes.

57:08.000 --> 57:12.960
I don't know why anybody would choose JSP, again, over ASP or PHP or whatever, other than

57:12.960 --> 57:16.040
the fact that maybe they're running Microsoft environment.

57:16.200 --> 57:21.280
They might be forced to use ASP or, yeah, well, that's pretty much the only word to say

57:21.280 --> 57:21.420
it.

57:21.820 --> 57:24.360
But here's something else that bugs me about Java.

57:24.440 --> 57:27.080
Let me see what you, let me throw this out there and see what you feel about this.

57:27.460 --> 57:27.940
Okay, sure.

57:28.540 --> 57:29.500
Virtual machines.

57:30.440 --> 57:30.560
Yeah.

57:30.560 --> 57:36.980
Okay, Java, Java proclaims to be write-once-run anywhere.

57:37.400 --> 57:37.840
Right.

57:37.960 --> 57:43.540
As though somehow it's this mythical language that I can write code one time and it's magically

57:43.540 --> 57:46.940
going to work anywhere that Java is available.

57:46.940 --> 57:52.880
So, first of all, if that's the case, my first thing that makes me wonder is, well, what about

57:52.880 --> 57:56.760
back to what you said earlier about the J2ME, J2SE, J2EE?

57:57.140 --> 58:01.520
Each one of those is different depending on where you're planning on deploying this application.

58:02.300 --> 58:06.320
So, how can you write code that's going to work on all three of those if all three of

58:06.320 --> 58:09.220
those have different ways of doing things?

58:10.180 --> 58:13.440
Secondly, well, actually, let's stop there.

58:13.540 --> 58:16.740
First of all, where am I going wrong with that thought process?

58:17.340 --> 58:19.360
No, you know, I'm in the same boat.

58:19.500 --> 58:22.580
People say Java, write-once, run-anywhere.

58:23.520 --> 58:24.420
It's not really true.

58:24.500 --> 58:28.120
If that was true, you would have, you know, fewer standards.

58:28.360 --> 58:33.240
And even when you're using the same standard, even if you're using, let's say, J2EE, you

58:33.240 --> 58:35.020
mentioned Comcat before.

58:35.100 --> 58:38.600
I'm pretty sure, now, of course, this is going to show everybody that I'm super new when

58:38.600 --> 58:39.060
it comes to Java.

58:39.060 --> 58:41.920
I'm pretty sure that my application is J2EE.

58:42.300 --> 58:46.600
And the only reason I think that is because when I try to use just the plain old Java mode in

58:46.600 --> 58:47.740
Eclipse, nothing works.

58:48.280 --> 58:48.620
So, anyway.

58:49.500 --> 58:49.900
Yeah.

58:49.900 --> 58:53.780
And is it going to work in another server besides Tomcat?

58:53.880 --> 58:56.180
Or are there different hooks for other applications?

58:56.300 --> 59:00.660
So, you'd actually have to change the libraries and the objects and all that kind of stuff.

59:00.960 --> 59:01.220
Right.

59:01.280 --> 59:02.680
Well, that's what I'm getting to.

59:02.780 --> 59:05.400
I wrote mine and tested mine on Tomcat.

59:05.400 --> 59:14.340
Now, supposedly, if I had the same application, I should be able to use it on another Java web

59:14.340 --> 59:14.640
server.

59:14.820 --> 59:16.600
Or I think they call them servlet containers.

59:17.940 --> 59:18.700
Oh, yes.

59:19.700 --> 59:21.580
But we'll forget about that.

59:21.840 --> 59:25.700
There are a few other Java web servers that I'm aware of.

59:25.960 --> 59:28.020
First is Tomcat, the one that I use.

59:28.020 --> 59:33.260
Then there is JBoss, which is by Red Hat, I think.

59:33.500 --> 59:34.780
Or Red Hat owns it now.

59:35.060 --> 59:38.060
But maybe JBoss was on its own before, something like that.

59:38.400 --> 59:42.220
So, then there's also WebSphere by IBM.

59:42.820 --> 59:49.320
And I think that there's another one by a company called BEA called WebLogic, maybe?

59:49.520 --> 59:50.080
Web something.

59:50.260 --> 59:50.620
I don't know.

59:50.820 --> 59:51.440
In any case.

59:51.440 --> 59:57.260
The company that I was working for that took me over to Germany and got me all hyped up

59:57.260 --> 01:00:02.700
about Java, they have a J2EE application that runs on JBoss and WebSphere.

01:00:02.980 --> 01:00:07.940
Well, the deployment aspect that I was talking about before, which was really nice in Tomcat,

01:00:08.060 --> 01:00:13.260
where I take my WAR file from my desktop and I R-sync it over the network and I just prop it

01:00:13.260 --> 01:00:16.320
in this directory and then my new website's there and does everything for me.

01:00:17.460 --> 01:00:21.180
Not so much on this, like, really big enterprise system.

01:00:21.180 --> 01:00:24.840
Now, granted, it's because a system like that requires more configuration.

01:00:25.800 --> 01:00:36.340
But the installation instructions for WebSphere and for JBoss were so vastly different.

01:00:37.240 --> 01:00:38.240
It was just amazing.

01:00:38.560 --> 01:00:41.440
I don't even know how to do an installation on WebSphere.

01:00:41.600 --> 01:00:43.440
Whereas with JBoss, I could do it in a couple of minutes.

01:00:44.140 --> 01:00:48.800
WebSphere, there were just a million steps and you needed, like, certified WebSphere people

01:00:48.800 --> 01:00:49.760
to do everything.

01:00:50.580 --> 01:00:51.240
It was a mess.

01:00:51.420 --> 01:00:57.800
To me, that is not, that is, like, counter to the whole idea of write once and run anywhere.

01:00:58.500 --> 01:00:58.820
Right.

01:00:58.960 --> 01:01:04.900
Well, and not only that, okay, the other thing is, and this is where I was going, I guess,

01:01:04.900 --> 01:01:11.440
with virtual machines is, you're, every virtual, every environment you're going to be working

01:01:11.440 --> 01:01:15.700
in needs a virtual machine that's going to be able to interpret and run that Java code.

01:01:16.600 --> 01:01:23.900
So, you have to download a virtual machine for Windows, one for Unix, one for Linux, for,

01:01:24.060 --> 01:01:28.340
I don't know how different if they run for BSD, for all the different environments and stuff,

01:01:28.340 --> 01:01:32.300
and then for all the different versions of it, there's, I'm sure there's some for different

01:01:32.300 --> 01:01:37.740
PDAs, cell phones, et cetera, all these different virtual machines, and then Oracle, for example,

01:01:37.800 --> 01:01:42.560
that I talked about earlier, it's going to have, basically, built-in virtual machines so

01:01:42.560 --> 01:01:45.500
that it can natively support Java store procedures.

01:01:46.140 --> 01:01:49.120
So, the applications may have virtual machines built into them.

01:01:49.120 --> 01:01:56.620
If you have to download and install a virtual machine to make the code run, it's not really

01:01:56.620 --> 01:01:59.080
write-once-run-anywhere at all.

01:01:59.200 --> 01:02:05.160
The whole concept of that, to me, is bizarre because it's not write-once-run-anywhere,

01:02:05.260 --> 01:02:11.080
it's write-once-run-anywhere as long as you have pre-installed the virtual machine for

01:02:11.080 --> 01:02:12.280
said environment.

01:02:12.280 --> 01:02:18.940
Well, I mean, you've got to have some type of in-between that gives you, you know, a bridge

01:02:18.940 --> 01:02:20.980
to the actual operating system.

01:02:21.140 --> 01:02:25.720
Like, it's very difficult to write just a fucking executable file that's going to run

01:02:25.720 --> 01:02:27.060
on all these different platforms.

01:02:27.220 --> 01:02:31.820
Not to say that it hasn't been done, because it has, but it's a big mess.

01:02:32.620 --> 01:02:38.520
Well, it's just that, I just don't like the idea that they purport themselves to be such

01:02:38.520 --> 01:02:43.000
a beast, and people actually believe this concept that, yeah, you just write some code

01:02:43.000 --> 01:02:45.780
anywhere, and then you just, sure, you just copy it over to Linux, and you run it there

01:02:45.780 --> 01:02:46.340
just the same.

01:02:46.400 --> 01:02:49.420
You don't have to change anything, and then you'll run it and put it on your cell phone,

01:02:49.460 --> 01:02:50.300
and it'll run just fine.

01:02:50.380 --> 01:02:51.420
Well, no, bullshit.

01:02:52.160 --> 01:02:53.720
It does not at all.

01:02:54.700 --> 01:02:54.960
Yeah.

01:02:55.180 --> 01:03:00.920
And I would even argue that even closer to write-once-run-anywhere, even closer than Java,

01:03:00.920 --> 01:03:08.400
I would argue that ANSI standard C is closer to that than Java, because it's a standard.

01:03:08.520 --> 01:03:12.460
It's an ANSI standard, and the environments, as long as they support the ANSI standards,

01:03:12.520 --> 01:03:17.520
which most do, and that holds true for any language, to me is more portable than anything.

01:03:17.680 --> 01:03:21.940
If I write an ANSI standard program on Linux, I can bring it over, compile it, and run it

01:03:21.940 --> 01:03:22.380
in Windows.

01:03:23.200 --> 01:03:29.140
Right, but I could counter that with saying ANSI C then is write-once-run-anywhere, as long

01:03:29.140 --> 01:03:32.840
as you have all of the compiler tools and all of the libraries.

01:03:33.720 --> 01:03:35.060
Ah, and that's the same thing with Java.

01:03:35.060 --> 01:03:41.420
So how come Java is purported to be write-once-run-anywhere when it's really no better than ANSI C?

01:03:41.480 --> 01:03:42.920
I think we're both saying the same thing.

01:03:43.840 --> 01:03:49.020
No, no, no, I disagree, because with Java, you can just give somebody one file, a JAR file,

01:03:49.120 --> 01:03:52.500
a WAR file, an EAR file, which is an enterprise archive.

01:03:52.940 --> 01:03:58.100
You can give them that one file that has everything in it, and as long as they have the virtual machine,

01:03:58.540 --> 01:03:59.340
they can just run it.

01:03:59.340 --> 01:04:04.680
Now, if the JAR file doesn't contain all of the libraries, you need those external libraries

01:04:04.680 --> 01:04:06.180
too, but you can make.

01:04:06.180 --> 01:04:08.320
All right, but as long as the virtual machine is there.

01:04:08.360 --> 01:04:08.980
You just said it.

01:04:09.620 --> 01:04:12.620
Right, yeah, yeah, as long as the virtual machine is there, but it doesn't require the

01:04:12.620 --> 01:04:13.800
users to recompile it.

01:04:13.860 --> 01:04:16.740
You don't have to know about make files and all this other kind of stuff.

01:04:16.920 --> 01:04:17.480
Well, that's true.

01:04:17.500 --> 01:04:19.560
You just type Java, and then the name of the JAR file, and you're done.

01:04:19.560 --> 01:04:24.220
Well, that's true that you do not have to recompile it, but it's still the same to me.

01:04:24.360 --> 01:04:26.960
They're both just as ridiculous to me.

01:04:27.000 --> 01:04:31.760
Neither one of them is write once, run anywhere, but I don't think, just saying that for Java,

01:04:31.820 --> 01:04:35.360
I just don't think it's any more appropriate than it is for anything else.

01:04:35.800 --> 01:04:38.140
Well, but for Java, it involves one less step.

01:04:38.320 --> 01:04:44.320
With NTC, it would be compile and then run, but for Java, it would just be run with the

01:04:44.320 --> 01:04:44.920
virtual machine.

01:04:44.920 --> 01:04:48.940
Right, well, and you know, the same thing does hold true with C as far as if you use

01:04:48.940 --> 01:04:52.000
some libraries that aren't available on their destination computer, you're going to have

01:04:52.000 --> 01:04:53.180
to bring those over there, too.

01:04:53.740 --> 01:04:53.900
Yeah.

01:04:54.000 --> 01:04:55.060
So that's still...

01:04:55.060 --> 01:04:59.180
You can compile things statically, so it includes everything also, but not everybody does that.

01:04:59.360 --> 01:05:00.580
Right, so...

01:05:00.580 --> 01:05:04.740
And if it's pre-compiled, it's got to be pre-compiled for your system.

01:05:04.920 --> 01:05:05.920
Well, for the architecture.

01:05:06.120 --> 01:05:08.860
Just download the static binary for every system in the world.

01:05:09.000 --> 01:05:10.740
It doesn't work, so...

01:05:10.740 --> 01:05:11.160
No.

01:05:11.160 --> 01:05:16.140
You know, I kind of agree with the run anywhere bit.

01:05:16.320 --> 01:05:17.120
I just...

01:05:17.120 --> 01:05:19.200
For me, it's not the problem of having the virtual machine.

01:05:19.340 --> 01:05:21.300
I understand there's no way around it.

01:05:21.400 --> 01:05:23.720
That's, like I said, that's your bridge to the operating system.

01:05:26.180 --> 01:05:26.740
But...

01:05:26.740 --> 01:05:29.100
Well, but how about the mono project?

01:05:29.180 --> 01:05:30.200
Let's use that as an example.

01:05:30.320 --> 01:05:34.040
That's a project to run .NET applications under Linux, right?

01:05:34.360 --> 01:05:34.800
Right.

01:05:34.800 --> 01:05:39.800
All right, so it's not exactly a virtual machine, but it's an environment that will allow you

01:05:39.800 --> 01:05:44.960
to write your code once on a Windows box, your .NET code, and run it over on a Linux box.

01:05:45.040 --> 01:05:46.800
So basically, it's accomplishing the same thing...

01:05:47.700 --> 01:05:48.060
Yeah.

01:05:48.400 --> 01:05:50.580
...to me, in my mind, anyway, of what you're describing.

01:05:50.700 --> 01:05:51.480
Is that right?

01:05:52.300 --> 01:05:52.980
Absolutely, yeah.

01:05:54.980 --> 01:05:55.460
So...

01:05:55.460 --> 01:06:03.020
Java and .NET, I mean, I don't really know all too much about the whole .NET framework.

01:06:03.160 --> 01:06:06.800
Again, I've programmed in it, but I don't know, like, the very low-level specifics of it.

01:06:07.320 --> 01:06:13.020
But, yeah, to run a .NET application, you need the .NET framework.

01:06:13.140 --> 01:06:16.720
You've got to download the, you know, 1.1 or 2.0, whatever your application calls for,

01:06:16.720 --> 01:06:18.080
or now 3.0 with Vista.

01:06:18.080 --> 01:06:22.880
You've got to download that, and if you want to run it on Linux, you've got to download

01:06:22.880 --> 01:06:27.560
Mono, and if you want to run it on BSD, you've got to download Mono for that, you compile Mono

01:06:27.560 --> 01:06:27.940
for that.

01:06:28.000 --> 01:06:32.600
So you're in the same boat if you want to run .NET applications as if you want to run Java

01:06:32.600 --> 01:06:33.140
applications.

01:06:33.220 --> 01:06:35.800
If you want Java apps, you've got to download the virtual machines.

01:06:36.340 --> 01:06:37.060
Right, exactly.

01:06:37.220 --> 01:06:44.020
But for me, the thing is, since Java was not written by Microsoft, there's better support

01:06:44.020 --> 01:06:45.380
on all platforms for it.

01:06:45.380 --> 01:06:51.240
You'd be hard-pressed to find, you know, a real personal computer platform that doesn't

01:06:51.240 --> 01:06:56.760
have its type of virtual machine that's well-tested and works, whereas the Mono project, I don't

01:06:56.760 --> 01:06:59.280
know if you've tried to run anything with the Mono project.

01:06:59.540 --> 01:07:04.260
Things do work, but if you're just trying to run a straight-up .NET application with Mono,

01:07:04.340 --> 01:07:05.020
it doesn't work.

01:07:05.520 --> 01:07:09.820
Well, I don't know that Mono's final release of any kind, I think it's still in beta form,

01:07:09.880 --> 01:07:10.200
isn't it?

01:07:10.200 --> 01:07:14.020
Oh, yeah, yeah, yeah, it's definitely not all there, but that's my point.

01:07:14.480 --> 01:07:19.020
Java is way further ahead in years and years than Mono.

01:07:19.140 --> 01:07:19.560
Oh, sure.

01:07:19.700 --> 01:07:20.640
No doubt about that.

01:07:21.940 --> 01:07:23.220
No doubt about that.

01:07:25.080 --> 01:07:29.060
Well, is there anything else we want to talk about Java, then, before we...

01:07:29.060 --> 01:07:35.180
I don't know, I wish we had, as always, I wish we had more time to do it.

01:07:35.240 --> 01:07:38.960
I wish I had a little more time to prepare and think about it.

01:07:38.960 --> 01:07:44.060
I know we're kind of like doing a stream of consciousness and rambling a little bit, but

01:07:44.060 --> 01:07:53.340
hopefully the parts of it that get across to people are easy to deploy, easy to debug,

01:07:53.860 --> 01:07:57.980
easy to move from machine to machine, you know, as long as you're using the same, you know,

01:07:57.980 --> 01:08:01.620
you're using Tomcat or whatever on all your machines, stuff like that.

01:08:02.100 --> 01:08:03.140
Very maintainable.

01:08:03.700 --> 01:08:09.600
Forces you to use objects, to be object-oriented, which to me initially seemed like a pain,

01:08:09.600 --> 01:08:16.920
but now that I've gotten used to it, it helps me keep my source code very organized and has

01:08:16.920 --> 01:08:22.560
made my ability to develop applications just that much faster, because now I have a lot

01:08:22.560 --> 01:08:24.040
of code that's reusable.

01:08:24.280 --> 01:08:27.440
I just find myself using code from different projects all over the place.

01:08:27.560 --> 01:08:30.280
I have three or four Java projects all going right now.

01:08:31.920 --> 01:08:36.600
Is there a lot of code out there on the global interweb that you can hijack and use for...

01:08:37.600 --> 01:08:38.040
Yeah.

01:08:38.040 --> 01:08:39.580
Since it's portable...

01:08:39.600 --> 01:08:41.280
There's a lot of free code out there.

01:08:41.320 --> 01:08:42.120
There's a lot of libraries.

01:08:42.320 --> 01:08:46.160
There's an Asterisk library called Asterisk Java that I've been using.

01:08:46.320 --> 01:08:51.580
That's kind of my big secret behind all the Free Factor and Bell's Mind stuff right now.

01:08:51.920 --> 01:08:52.400
Nice.

01:08:53.040 --> 01:08:58.880
And the other thing, your favorite company in the world, Google...

01:08:58.880 --> 01:08:59.580
Oh, no.

01:09:00.380 --> 01:09:03.880
Google has this thing called the Google Web Toolkit.

01:09:03.880 --> 01:09:09.720
Now, I mentioned SWT before, which is the Swing Toolkit for building graphical applications.

01:09:10.440 --> 01:09:16.940
The Google Web Toolkit is a way to build web applications, AJAX-style web applications,

01:09:16.940 --> 01:09:23.500
you know, like Google Maps and Google Mail, all that stuff, with Java.

01:09:23.500 --> 01:09:30.060
And the cool thing about it is, you write Java code that, you know, creates a text box or creates,

01:09:30.060 --> 01:09:34.500
you know, some type of image or something like that.

01:09:34.500 --> 01:09:42.580
You debug this Java code in Google's little web browser that pops up so you can step through all of your Java code

01:09:42.580 --> 01:09:48.120
and say, okay, let me just click this button, pop this image up in their browser, or move this text box,

01:09:48.120 --> 01:09:50.400
and you can do animation, all kinds of other stuff.

01:09:51.320 --> 01:09:52.100
You do that.

01:09:52.500 --> 01:09:53.800
You debug your application in Java.

01:09:54.100 --> 01:09:57.960
When you're done, you run the Google compilation script.

01:09:58.260 --> 01:10:03.940
It compiles your Java into JavaScript, another standard that I know you love.

01:10:05.220 --> 01:10:12.980
And you can make browser-side, again, AJAX-style applications in JavaScript without actually knowing any JavaScript.

01:10:12.980 --> 01:10:19.340
So all of the stuff in the interface that I have here was written in Java but runs in your browser as JavaScript,

01:10:20.260 --> 01:10:21.540
if that makes sense at all.

01:10:21.980 --> 01:10:25.220
I don't know if it does anymore.

01:10:26.000 --> 01:10:26.560
I know.

01:10:27.580 --> 01:10:28.580
It's all confusing.

01:10:28.700 --> 01:10:29.680
But just think about it like this.

01:10:29.720 --> 01:10:34.620
In order to write my interface, I didn't need to know any JavaScript at all.

01:10:34.920 --> 01:10:40.520
All I had to do was use the Google Web Toolkit, pretend like I was writing a regular graphical application,

01:10:40.520 --> 01:10:47.360
and then Google somehow, to the magic of their JavaScript compiler, turns it into JavaScript for me,

01:10:47.480 --> 01:10:49.820
and it just runs magically.

01:10:51.220 --> 01:10:56.220
Well, I mean, there's something to be said for rapid application development, for RAD development,

01:10:56.720 --> 01:10:59.180
but I don't know.

01:10:59.260 --> 01:11:04.280
I just wish I understood the fundamentals of how and why it's designed the way that it is better.

01:11:04.280 --> 01:11:07.360
But that would probably make for some pretty dry radio,

01:11:07.580 --> 01:11:11.380
so I guess that's pretty much all the damage we can do on it for this week.

01:11:12.080 --> 01:11:12.280
Yeah.

01:11:13.580 --> 01:11:14.720
Google bought DoubleClick.

01:11:14.760 --> 01:11:15.480
What do you think about that?

01:11:16.500 --> 01:11:17.860
Yeah, you know, I heard that somewhere.

01:11:17.980 --> 01:11:20.880
I thought DoubleClick was like one of the most evil companies in the world,

01:11:21.080 --> 01:11:23.060
but apparently Google didn't think so.

01:11:23.180 --> 01:11:25.580
Google is not evil, of course, so...

01:11:25.580 --> 01:11:28.520
Well, maybe they'll turn DoubleClick into like something really nice.

01:11:28.520 --> 01:11:33.240
Yeah, right, tracking all of our movement on the interweb.

01:11:33.840 --> 01:11:36.080
See, DoubleClick got into problems, Oxy.

01:11:36.200 --> 01:11:37.120
I hear you got me on there.

01:11:37.380 --> 01:11:38.880
Oh, why did I have to go and bring this up?

01:11:39.700 --> 01:11:40.460
I'm going to stop.

01:11:41.360 --> 01:11:45.920
DoubleClick, of course, is the company that pushed forward banner ads back in the day

01:11:45.920 --> 01:11:49.740
and little cookies back in early browser days,

01:11:49.860 --> 01:11:51.400
and they tracked everywhere that you were going

01:11:51.400 --> 01:11:54.300
so they could see what sites you frequented by the cookie of the tracking,

01:11:54.600 --> 01:11:57.300
and they got in a lot of trouble with it over privacy and whatnot.

01:11:57.300 --> 01:11:59.300
Some of the things I complain that Google's doing.

01:12:00.000 --> 01:12:03.600
Well, now Google has bought their entire database of all the stuff that they've tracked,

01:12:03.800 --> 01:12:07.880
and now that they own it, they can easily tie that into your Google account.

01:12:08.080 --> 01:12:11.320
So if you have any information that DoubleClick's been tracking on you

01:12:11.320 --> 01:12:13.240
and the websites you visit, Google's got that now.

01:12:13.400 --> 01:12:17.480
So once again, Google's database is getting bigger and bigger and bigger.

01:12:17.600 --> 01:12:21.520
Big Brother is watching, and his name is Google.

01:12:22.260 --> 01:12:23.540
Awesome. I love it.

01:12:23.840 --> 01:12:24.100
I know.

01:12:24.100 --> 01:12:25.880
I can't wait to buy more Google stock.

01:12:25.880 --> 01:12:29.100
$400 a share, some shit like that?

01:12:29.160 --> 01:12:30.300
That's craziness.

01:12:30.960 --> 01:12:31.500
It's a bargain.

01:12:31.640 --> 01:12:34.840
I wish it was $1,000 a share so I could buy it at that price.

01:12:35.480 --> 01:12:40.600
If it was $1,000 a share, all the actual Google people who own stock in their own company

01:12:40.600 --> 01:12:43.360
would all be so rich that they'd all quit and Google would die.

01:12:44.600 --> 01:12:47.980
Or they'd use all that money to buy even more stuff to grow even bigger.

01:12:48.960 --> 01:12:50.700
Yeah, to make a bigger Google flex.

01:12:50.700 --> 01:12:57.680
Wow. Anyway, I digress. We'll leave that for discussion by someone else.

01:12:58.460 --> 01:12:59.100
Let's see.

01:12:59.160 --> 01:12:59.820
Is that all the time we have?

01:13:00.380 --> 01:13:03.860
Well, we've got, I don't know, we've got about 15, 10, 15 minutes.

01:13:04.480 --> 01:13:04.800
Hmm.

01:13:05.340 --> 01:13:06.380
Yeah, that's it.

01:13:06.400 --> 01:13:06.760
All dirty today?

01:13:06.760 --> 01:13:12.420
So by the time we do all our closing stuff here, we'll be just about out of time.

01:13:13.020 --> 01:13:14.620
But we can talk dirty afterwards.

01:13:15.240 --> 01:13:16.240
Oh, yeah.

01:13:16.440 --> 01:13:16.840
Yeah.

01:13:16.860 --> 01:13:18.680
That'll be on Freak Factor.

01:13:19.040 --> 01:13:21.900
We can sing our lolliproan song.

01:13:24.140 --> 01:13:28.080
Oh, my God. Go for it. Come on. Go for it.

01:13:28.380 --> 01:13:31.020
Nope. Can't do that one on the air. Nobody wants to hear me.

01:13:31.020 --> 01:13:33.900
I did the Janet Jackson singing one time. That was about as much as you get.

01:13:33.900 --> 01:13:35.300
Oh, man.

01:13:35.300 --> 01:13:35.620
Anyway.

01:13:35.780 --> 01:13:37.780
That one was great, though. That was just pure genius.

01:13:38.060 --> 01:13:42.160
Dude, you know what we should do? We should go on American Idol next year and sing that in the tryouts.

01:13:44.540 --> 01:13:47.200
That would definitely make the interweb.

01:13:47.620 --> 01:13:49.340
Well, I don't know. Do you think that they would get it?

01:13:49.860 --> 01:13:53.280
Probably not, but they'd put me through. I'd dress up like a schoolgirl or something.

01:13:54.540 --> 01:13:55.680
They'd put me through to make me.

01:13:55.740 --> 01:13:55.840
Wow.

01:13:56.100 --> 01:13:57.120
Yeah, wouldn't that be awesome?

01:13:57.720 --> 01:14:00.660
Oh, my God. That definitely would not make it on TV.

01:14:00.860 --> 01:14:02.880
How hot is that? Is that sexy talk?

01:14:02.880 --> 01:14:04.380
That is sexy talk, right?

01:14:04.380 --> 01:14:05.480
You want to make sexy time?

01:14:05.500 --> 01:14:06.220
No, that's all right.

01:14:08.680 --> 01:14:10.460
Oh, man. Well, let's see.

01:14:10.960 --> 01:14:15.560
A reminder for everybody listening that your local BinRev meetings are this weekend.

01:14:15.560 --> 01:14:18.720
If you have one, I do, so I will be attending that.

01:14:19.580 --> 01:14:22.520
So hopefully you have some new people coming out to that one.

01:14:22.640 --> 01:14:27.040
Some people on the forum said they might give it a shot this weekend, so hopefully we'll see people there.

01:14:27.040 --> 01:14:33.420
Shouts this week. Shouts to MC Frontalot, MC Lars, and Optimus Rhyme.

01:14:33.500 --> 01:14:35.120
They are on tour right now.

01:14:35.200 --> 01:14:39.680
Go check out Frontalot.com or OptimusRhyme.com or MCLars.com.

01:14:39.720 --> 01:14:42.080
I'm sure they all have the schedule, the tour schedule out there.

01:14:42.140 --> 01:14:44.620
Go check them out if they are coming near you.

01:14:44.700 --> 01:14:50.660
I think they're on the west side right now, but they're coming back east hopefully sometime soon, a few months.

01:14:50.660 --> 01:14:54.980
Shouts to Droops and Enigma, and what do you got?

01:14:57.680 --> 01:15:03.960
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,

01:15:04.140 --> 01:15:06.640
but their names are all escaping me now.

01:15:07.900 --> 01:15:09.360
All right. Well, shouts to them.

01:15:09.820 --> 01:15:11.940
I guess I have shouts to nobody then.

01:15:12.260 --> 01:15:14.540
Oh, man. None at all.

01:15:15.400 --> 01:15:17.160
No. Actually, you know what?

01:15:17.160 --> 01:15:21.780
I don't know how to pronounce his name, so I think he's a PLA guy.

01:15:22.360 --> 01:15:26.120
His handle is Yautch or Yuck or something like that.

01:15:26.120 --> 01:15:27.560
Y-A-U-C-H.

01:15:27.860 --> 01:15:28.520
Yautch, right?

01:15:29.060 --> 01:15:29.460
Yautch.

01:15:29.460 --> 01:15:30.600
Is he named after Adam Yautch?

01:15:30.600 --> 01:15:35.760
I read something about pronouncing it on the PLA voice a long time ago, and I apologize, but I don't remember exactly how.

01:15:36.060 --> 01:15:41.580
But he's been giving me a lot of information about things that are working and not working

01:15:41.580 --> 01:15:45.520
and stuff that he wants to see brought back because it hasn't been re-implemented yet.

01:15:45.520 --> 01:15:52.140
But he has been the best source of motivation for the Bell's Mind revival.

01:15:52.540 --> 01:15:53.360
So, shouts to him.

01:15:53.840 --> 01:15:55.460
Cool. I thought that was a Beastie Boys reference.

01:15:55.600 --> 01:15:57.540
I thought Yautch was one of the Beastie Boys.

01:15:58.920 --> 01:15:59.660
The hell do I know?

01:15:59.780 --> 01:16:01.560
I don't know. You don't know anything about rap.

01:16:02.220 --> 01:16:03.300
Except Gangstar.

01:16:04.160 --> 01:16:05.080
Yeah, buddy.

01:16:05.900 --> 01:16:06.720
How about Melly Mel?

01:16:08.080 --> 01:16:10.420
You know, I heard some Melly Mel on XM the other day.

01:16:10.920 --> 01:16:11.200
Really?

01:16:11.200 --> 01:16:12.020
It was really terrible.

01:16:12.840 --> 01:16:14.320
Oh, you better watch your mouth.

01:16:15.520 --> 01:16:16.440
Oh, let's see. What else?

01:16:16.700 --> 01:16:19.060
Site of the week actually comes from Not Theory tonight.

01:16:19.540 --> 01:16:22.560
As soon as we're done with the show, I'm going right back to the site of the week.

01:16:23.200 --> 01:16:27.200
It is HandDrawnGames.com.

01:16:27.280 --> 01:16:31.480
That's H-A-N-D-D-R-A-W-N-G-A-M-E-S.

01:16:32.140 --> 01:16:33.220
HandDrawnGames.com.

01:16:33.700 --> 01:16:36.120
And they have this little, I don't know, is it Java?

01:16:36.960 --> 01:16:38.180
Shockwave? I don't know what the hell it is.

01:16:38.180 --> 01:16:40.340
Some kind of web browser game.

01:16:40.440 --> 01:16:41.120
Tower Defense.

01:16:41.900 --> 01:16:43.200
Yeah, I think it's Flash.

01:16:43.560 --> 01:16:44.420
Is it Flash? Okay.

01:16:44.420 --> 01:16:45.360
Flash game.

01:16:46.020 --> 01:16:47.840
I'm actually playing it right now, and it's awesome.

01:16:48.000 --> 01:16:49.320
You're playing it while we're doing the show?

01:16:49.420 --> 01:16:50.100
You douche.

01:16:51.380 --> 01:16:51.840
Oh, whatever.

01:16:52.300 --> 01:16:53.260
So go check it out.

01:16:53.320 --> 01:16:55.380
Play Tower Defense and save your score.

01:16:55.900 --> 01:16:59.880
Put it in group DDP, and you can see how you're doing against us,

01:16:59.940 --> 01:17:01.560
because I kind of suck sore at it.

01:17:02.440 --> 01:17:03.620
But we'll see.

01:17:03.760 --> 01:17:06.140
By this time next week, maybe I'll be pwning noobs.

01:17:06.140 --> 01:17:12.660
Binary Revolution Radio is provided by caro.net.

01:17:13.000 --> 01:17:15.580
Go check out caro.net for your hosting needs.

01:17:16.020 --> 01:17:19.320
Email us, of course, radio at binrev.com.

01:17:19.860 --> 01:17:25.620
Feedback on any portion of the show, or to put us in place about our Java mistakes,

01:17:25.700 --> 01:17:26.820
which I'm sure there were some.

01:17:26.820 --> 01:17:33.740
Or, or, if you are, and only if you are an expert in Java,

01:17:34.200 --> 01:17:36.640
contact us, because I would love to do a show

01:17:36.640 --> 01:17:39.620
and talk about some of the fundamentals and the basics

01:17:39.620 --> 01:17:42.260
and the underlying structure of how Java works,

01:17:42.340 --> 01:17:45.420
the design, what it does and why it does it,

01:17:45.700 --> 01:17:47.840
some of the nuts and bolts of it.

01:17:47.840 --> 01:17:50.100
But only if you really know it well.

01:17:50.600 --> 01:17:52.840
So, email me, radio at binrev.com,

01:17:53.500 --> 01:17:57.100
and we will see if we can work out an episode in the future.

01:17:57.940 --> 01:18:01.200
Certainly, Java and all the different flavors is a topic

01:18:01.200 --> 01:18:04.100
we could probably do ten episodes on, to be honest, or really could.

01:18:04.820 --> 01:18:06.000
So, I don't know.

01:18:06.060 --> 01:18:07.180
We'll see where we go with that.

01:18:07.540 --> 01:18:09.400
Closing music tonight is called Warriors.

01:18:09.600 --> 01:18:12.020
It's from Metamystics Incorporated.

01:18:13.120 --> 01:18:14.840
So, that is going to do it.

01:18:15.040 --> 01:18:15.640
Not theory.

01:18:15.640 --> 01:18:18.140
Thank you, my friend, for being on the show once again.

01:18:18.640 --> 01:18:19.220
No problem.

01:18:19.660 --> 01:18:21.920
And next time you go to Germany, give me a call.

01:18:22.040 --> 01:18:22.560
I'll go with you.

01:18:22.620 --> 01:18:23.220
We'll go over there.

01:18:23.560 --> 01:18:25.040
Bang some chicks with hairy armpits.

01:18:25.740 --> 01:18:26.300
Get some lolly prawn.

01:18:26.300 --> 01:18:27.680
Oh, so keep cooking now.

01:18:27.840 --> 01:18:29.040
Get some lolly prawn.

01:18:29.800 --> 01:18:30.080
Wait a minute.

01:18:30.100 --> 01:18:30.940
They don't have that in Germany.

01:18:31.060 --> 01:18:32.160
Where would we have to go to get that?

01:18:33.120 --> 01:18:33.960
The Czech Republic.

01:18:34.260 --> 01:18:34.980
There you go.

01:18:35.100 --> 01:18:37.960
Czech Republic or one of those Russian provinces

01:18:37.960 --> 01:18:39.120
or something like that.

01:18:40.180 --> 01:18:41.540
And that's it.

01:18:41.620 --> 01:18:44.280
So, we will see everybody, we hope, anyway,

01:18:44.280 --> 01:18:46.780
next week, same hack time.

01:18:47.620 --> 01:18:48.600
Same hack channel.

01:18:49.860 --> 01:18:50.420
Shit.

01:18:53.500 --> 01:18:55.220
See that dude over there with his skates?

01:18:56.700 --> 01:18:57.340
Over there.

01:18:58.620 --> 01:18:59.640
He's after you.

01:19:00.280 --> 01:19:01.100
He's got some guys.

01:19:01.100 --> 01:19:05.920
I know they're in my hands.

01:19:06.680 --> 01:19:07.860
But now they know I know it.

01:19:07.860 --> 01:19:11.580
If you step to X, you best get your death plot.

01:19:11.640 --> 01:19:12.560
I wreck the feds.

01:19:12.600 --> 01:19:14.020
Get left with your next shot.

01:19:14.080 --> 01:19:16.460
I etch you red with text or the X-Box.

01:19:16.540 --> 01:19:17.440
Kill a team style.

01:19:17.520 --> 01:19:18.920
Your head in a red stock.

01:19:19.000 --> 01:19:19.640
Bomb flicks.

01:19:19.940 --> 01:19:20.700
We move crowds.

01:19:20.760 --> 01:19:21.280
I promise.

01:19:21.420 --> 01:19:22.460
You're best inspected.

01:19:22.620 --> 01:19:23.840
Rep like you hot blick.

01:19:23.920 --> 01:19:25.080
Combat reptile.

01:19:25.200 --> 01:19:25.960
Spent to kill.

01:19:26.280 --> 01:19:27.220
Scepter up north.

01:19:27.300 --> 01:19:28.540
You know Kim Jong-il.

01:19:28.780 --> 01:19:29.740
Blaze like the case.

01:19:29.820 --> 01:19:31.020
The pasted wasabi.

01:19:31.280 --> 01:19:32.180
Hotter than a bomb.

01:19:32.240 --> 01:19:32.860
They dropped Nagasaki.

01:19:33.680 --> 01:19:34.780
Stone cold Salone.

01:19:34.780 --> 01:19:35.840
Dragon Rocky.

01:19:36.140 --> 01:19:37.180
Right hook to Jaws.

01:19:37.260 --> 01:19:38.400
You drop and prompt me.

01:19:38.780 --> 01:19:39.260
Problematic.

01:19:39.500 --> 01:19:40.580
Blast few degrees.

01:19:40.740 --> 01:19:43.100
Lines crafted to laugh at music scenes.

01:19:43.320 --> 01:19:44.280
A fusion scene.

01:19:44.400 --> 01:19:45.580
Known as you and C's.

01:19:45.800 --> 01:19:47.820
The half you act is wishing you were me.

01:19:48.020 --> 01:19:49.040
This is but a rap.

01:19:49.260 --> 01:19:50.880
For the cats who be cutting glass.

01:19:50.960 --> 01:19:51.580
Fuck with that.

01:19:51.780 --> 01:19:53.340
Get mashed like you suck a tash.

01:19:53.420 --> 01:19:54.040
Run it fast.

01:19:54.200 --> 01:19:55.720
Or get smacked with another blast.

01:19:55.820 --> 01:19:58.080
Crafted rap since fat like thunder pass.

01:19:58.200 --> 01:19:59.160
Speaking of the dragon.

01:19:59.240 --> 01:20:00.220
Now it's ending the myth.

01:20:00.260 --> 01:20:02.720
And I'ma kill the mic over this funk Havana rip.

01:20:02.880 --> 01:20:04.580
I'm the master motherfucking author.

01:20:04.580 --> 01:20:05.300
Before the ages.

01:20:05.440 --> 01:20:06.520
I wrote all the pages.

01:20:06.680 --> 01:20:07.800
Created all the rages.

01:20:08.220 --> 01:20:10.240
Spat more buck on beats than 12 gauges.

01:20:10.360 --> 01:20:11.400
You motherfucking cats.

01:20:11.480 --> 01:20:12.700
Sending up the short changes.

01:20:13.160 --> 01:20:14.760
Me and X cover all the time.

01:20:14.860 --> 01:20:15.260
Nameless.

01:20:15.400 --> 01:20:16.700
Kyle L break the stasis.

01:20:16.840 --> 01:20:17.500
I am faces.

01:20:17.700 --> 01:20:18.620
The dawn of the dead.

01:20:18.680 --> 01:20:19.860
When I roll out the bed.

01:20:20.400 --> 01:20:22.280
Radiation flow like I'm covered in lead.

01:20:22.340 --> 01:20:24.420
It's been sad when you clash with the Meta crew.

01:20:24.800 --> 01:20:27.200
Have a medical crew on speed dial number two.

01:20:27.600 --> 01:20:29.840
Even Steven King can't begin what we do to you.

01:20:29.840 --> 01:20:30.920
We leave your body burning.

01:20:31.040 --> 01:20:31.960
But it isn't the flu.

01:20:32.100 --> 01:20:32.480
It's true.

01:20:32.760 --> 01:20:33.700
Your left shell shot.

01:20:33.700 --> 01:20:34.900
Lyrically bombs drop.

01:20:35.020 --> 01:20:36.420
Physically seriously injured.

01:20:36.480 --> 01:20:37.020
What the fuck?

01:20:37.120 --> 01:20:38.300
I don't check once.

01:20:38.360 --> 01:20:39.420
I'm a seven in the sun.

01:20:39.520 --> 01:20:39.880
One, two.

01:20:39.980 --> 01:20:41.520
Once again I'll become your water.

01:20:41.600 --> 01:20:42.280
Though it's three.

01:20:42.400 --> 01:20:44.200
Disease fatal when you lack vaccines.

01:20:44.320 --> 01:20:45.520
Red pain like gangrene.

01:20:45.640 --> 01:20:46.760
Ain't the process like a knee.

01:20:47.160 --> 01:20:48.460
Seems the microphone skins.

01:20:48.560 --> 01:20:49.520
Detected impotence.

01:20:49.600 --> 01:20:50.140
Coming out.

01:20:50.200 --> 01:20:50.900
Swinging your stick.

01:20:50.980 --> 01:20:51.820
Looking ridiculous.

01:20:52.060 --> 01:20:53.500
Dipping in the biggest of the Vans.

01:20:53.600 --> 01:20:54.140
Marked bargain.

01:20:54.220 --> 01:20:54.740
It's the margin.

01:20:54.840 --> 01:20:56.540
You belong in the long side of a coffin.

01:20:56.540 --> 01:20:57.480
Underground starving.

01:20:57.860 --> 01:20:58.920
With the margins for air.

01:20:58.920 --> 01:21:00.220
Try to resurrect yourself.

01:21:00.220 --> 01:21:01.280
But I'm keeping you there.

01:21:01.380 --> 01:21:01.920
To be fair.

01:21:02.000 --> 01:21:03.880
Your land there bears one distinction.

01:21:04.160 --> 01:21:06.240
A very special chance to study mass extinction.

01:21:06.380 --> 01:21:07.800
And if you pop another shot of this.

01:21:07.840 --> 01:21:08.800
You know we got a bottle.

01:21:08.880 --> 01:21:10.200
This I'm aiming for your cartilage.

01:21:10.260 --> 01:21:11.360
Just charging on my cartridges.

01:21:11.680 --> 01:21:12.500
Heavy hitting slaughter.

01:21:12.620 --> 01:21:13.440
And it's bothering you.

01:21:13.520 --> 01:21:14.200
Don't woke up.

01:21:14.280 --> 01:21:15.220
And someone's on my home.

01:21:15.300 --> 01:21:16.000
Planet was blown.

01:21:16.200 --> 01:21:16.640
Jump stones.

01:21:16.740 --> 01:21:17.320
And you on earth.

01:21:17.340 --> 01:21:18.500
It's too fine for what you are.

01:21:18.660 --> 01:21:19.900
Everybody want to round it.

01:21:19.920 --> 01:21:20.320
Watch out.

01:21:20.400 --> 01:21:21.060
They let the purse.

01:21:21.140 --> 01:21:22.140
Where the worst of the best.

01:21:22.220 --> 01:21:23.300
Your heart beating IRS.

01:21:23.560 --> 01:21:24.620
Leave SDX.

01:21:24.620 --> 01:21:25.960
And the myth to do the rest.

01:21:26.080 --> 01:21:27.540
Project verbal spaceships.

01:21:27.640 --> 01:21:28.720
Smack y'all a facelift.

01:21:28.840 --> 01:21:29.680
Back on this bitch.

01:21:29.720 --> 01:21:31.000
Like a glitch in the matrix.

01:21:31.300 --> 01:21:31.980
Deja vu.

01:21:32.060 --> 01:21:33.300
And fuck you and your crew.

01:21:33.600 --> 01:21:34.560
Stack of small rappers.

01:21:34.660 --> 01:21:35.740
Jaw tapping in my shoe.

01:21:36.000 --> 01:21:37.540
I hit them with industrial bleach.

01:21:37.620 --> 01:21:38.180
Not a ghost.

01:21:38.280 --> 01:21:39.880
But I'm going to leave them whiter than sheets.

01:21:39.940 --> 01:21:40.720
On rap sheets.

01:21:40.900 --> 01:21:41.660
And y'all weak.

01:21:41.800 --> 01:21:43.380
Strap you in like a roller coaster.

01:21:43.520 --> 01:21:44.940
Plain tongue spitting out burns.

01:21:45.000 --> 01:21:45.940
Like a broken toaster.

01:21:46.240 --> 01:21:47.960
Me mugging on a most worn a poster.

01:21:47.960 --> 01:21:49.300
With an ample stack of samples.

01:21:49.300 --> 01:21:50.420
And a Kenny Roger roaster.

01:21:50.540 --> 01:21:51.680
Cooking up the fat beats.

01:21:52.020 --> 01:21:52.900
Down on the street.

01:21:52.900 --> 01:21:55.360
I build the foundation of my nation like a Greek.

01:21:55.720 --> 01:21:56.620
Ten times a week.

01:21:57.000 --> 01:21:58.460
Rhyme while I sleep in the bed.

01:21:58.600 --> 01:22:00.880
Counting out beats like they sheep in my head.

01:22:01.180 --> 01:22:02.940
Coming up with me for my song streak.

01:22:03.060 --> 01:22:05.120
Flowing and I'm spitting like I just sprung a leak.

01:22:05.220 --> 01:22:06.300
This is crack for peace.

01:22:06.360 --> 01:22:07.300
You did a masterpiece.

01:22:07.540 --> 01:22:08.600
So for a Latin beat.

01:22:08.720 --> 01:22:09.780
Closing the Mac defeat.

01:22:10.080 --> 01:22:11.000
When it's boom bap.

01:22:11.120 --> 01:22:12.500
Du-rap blast the streets.

01:22:12.600 --> 01:22:13.620
Every mystic hater.

01:22:13.800 --> 01:22:14.760
Gonna have to beat.

01:22:15.020 --> 01:22:16.300
Rhymes tape of Decatur.

01:22:16.300 --> 01:22:17.540
All high blazers.

01:22:17.820 --> 01:22:18.600
Style run high.

01:22:18.700 --> 01:22:20.020
Like you all cry frazier.

01:22:20.240 --> 01:22:22.200
Catch you rap about thugs and hoes.

01:22:22.200 --> 01:22:24.700
You coming up short like they multi-bobes.

01:22:24.880 --> 01:22:27.100
Now I chose the show that explodes the most.

01:22:27.320 --> 01:22:28.340
Got your domes rolling.

01:22:28.500 --> 01:22:29.720
So you know I'm ghosts.

01:22:29.980 --> 01:22:30.920
And you dig it.

01:22:32.300 --> 01:22:33.840
And you dig it.

01:22:33.840 --> 01:22:37.020
And you dig it.

01:22:37.020 --> 01:22:37.340
And you dig it.

01:22:45.340 --> 01:22:46.860
Oh, you thought that I'd finished.

01:22:46.960 --> 01:22:47.520
Well, I didn't.

01:22:47.920 --> 01:22:49.180
Here's my roll over a minute.

01:22:49.620 --> 01:22:51.340
Anytime I spit it shit, I get elected.

01:22:51.480 --> 01:22:52.660
Two percent of slingshot.

01:22:52.860 --> 01:22:55.960
Get injected to the planet and leave stars the size of boulevard.

01:22:56.100 --> 01:22:59.000
Since you so hard, you only coming back with the green card, homie.

01:22:59.000 --> 01:23:01.660
You coming back slacked on your back like a retard.

01:23:01.780 --> 01:23:04.200
Fill that shicey law shit, get your ass deep on.

01:23:04.540 --> 01:23:06.500
Next three bars, you get Bill Ma.

01:23:06.640 --> 01:23:08.860
Keep you in a jail cell like your steel cards.

01:23:09.180 --> 01:23:11.540
Hide the steel bars, take your pen and your note cards.

01:23:11.620 --> 01:23:13.120
Leave you choked up like asthmatic.

01:23:13.120 --> 01:23:13.960
We'll see you then.

01:23:13.960 --> 01:23:14.360
Wait a second.

01:23:24.800 --> 01:23:26.040
Thanks.

01:23:26.460 --> 01:23:27.620
Peace.

01:23:30.280 --> 01:23:30.800
Peace.

01:23:31.800 --> 01:23:32.380
Peace.

01:23:32.380 --> 01:23:33.320
Peace.

01:23:33.820 --> 01:23:35.980
Peace.

01:23:35.980 --> 01:23:51.220
The Warriors are good.

01:23:52.880 --> 01:23:54.040
Real good.

01:23:56.540 --> 01:23:57.660
The best.

