1
00:00:00,000 --> 00:00:06,780
Some job effects in action, and also the SDK.

2
00:00:06,780 --> 00:00:08,100
So why don't we launch into that?

3
00:00:08,100 --> 00:00:09,100
Okay.

4
00:00:09,100 --> 00:00:15,040
So this one shows you, like I was saying, we have audio, video, and HD, and all of that

5
00:00:15,040 --> 00:00:17,220
support coming in 1.0.

6
00:00:17,220 --> 00:00:22,500
So this is what you can look forward to, and here's a demo of high def video.

7
00:00:22,500 --> 00:00:27,280
This is in case you don't have time to watch each of those previews on their own, right?

8
00:00:27,280 --> 00:00:28,280
Yeah.

9
00:00:28,280 --> 00:00:34,760
And then if you do want to watch it, just one on its own, there you go.

10
00:00:34,760 --> 00:00:35,760
Right.

11
00:00:35,760 --> 00:00:44,040
So what are the sort of video encoders that these are being done in?

12
00:00:44,040 --> 00:00:45,040
Okay.

13
00:00:45,040 --> 00:00:49,660
This particular demo uses native, so on this one it's core video.

14
00:00:49,660 --> 00:00:50,660
Okay.

15
00:00:50,660 --> 00:00:54,780
But when we launched 1.0, we did announce at Java 1 this deal with ONTO.

16
00:00:54,780 --> 00:00:56,260
Oh, right.

17
00:00:56,260 --> 00:00:58,260
So we'll have a cross-platform codec.

18
00:00:58,260 --> 00:00:59,260
Okay.

19
00:00:59,260 --> 00:01:01,260
That will be across all platforms.

20
00:01:01,260 --> 00:01:08,260
And in addition, we will also support native video on all platforms, because I know when

21
00:01:08,260 --> 00:01:14,740
I talk to people, they seem to want both, cross-platform as well as support for whatever is on your platform

22
00:01:14,740 --> 00:01:16,220
as well, so we will have both.

23
00:01:16,220 --> 00:01:19,220
And in fact, the preview SDK already has native support.

24
00:01:19,220 --> 00:01:23,220
So I'm going to exit out of that and show you now what you can do with the IDE.

25
00:01:23,220 --> 00:01:28,700
So this is sort of the SDK that we're seeing here.

26
00:01:28,700 --> 00:01:29,700
Yes.

27
00:01:29,700 --> 00:01:30,700
Okay.

28
00:01:30,700 --> 00:01:35,200
And you can download it, and to everything we talked about how you import assets, I already

29
00:01:35,200 --> 00:01:38,580
have some here and I can show you.

30
00:01:38,580 --> 00:01:41,600
There's a sample project, the JavaFX sample project.

31
00:01:41,600 --> 00:01:44,700
There's a weather application which will come with the preview SDK.

32
00:01:44,700 --> 00:01:45,700
Uh-huh.

33
00:01:45,700 --> 00:01:51,820
And I've already got it running on mine, and I can show you the various things that are

34
00:01:51,820 --> 00:01:53,420
in the weather application.

35
00:01:53,420 --> 00:01:58,160
So right here, I was talking to you about Project Nile and what you can import from it.

36
00:01:58,160 --> 00:01:59,160
Right.

37
00:01:59,160 --> 00:02:00,600
When I run the demo, you'll see it.

38
00:02:00,600 --> 00:02:04,040
So let me first start by running the demo so you know what I'm talking about.

39
00:02:04,040 --> 00:02:15,600
And then, and I'll walk you through some code on how to do this in JavaFX.

40
00:02:15,600 --> 00:02:17,480
It's looking up weather data.

41
00:02:17,480 --> 00:02:20,200
So it's actually tying into the back end to a weather service.

42
00:02:20,200 --> 00:02:21,200
Uh-huh.

43
00:02:21,200 --> 00:02:26,420
So this is live data of weather in Prague, Paris, and Palo Alto.

44
00:02:26,420 --> 00:02:30,940
And then here's the animations, sunny in Palo Alto as always.

45
00:02:30,940 --> 00:02:34,520
So we're sort of focusing in on the temperature part, the highs and the lows.

46
00:02:34,520 --> 00:02:35,520
Yes.

47
00:02:35,520 --> 00:02:36,520
And then you can see it's raining in Paris.

48
00:02:36,520 --> 00:02:38,520
I don't know if that's visible, but.

49
00:02:38,520 --> 00:02:39,520
Right.

50
00:02:39,520 --> 00:02:45,020
And it's, you can see that it's the dark, it's night in Prague.

51
00:02:45,020 --> 00:02:46,180
This is the tomorrow part.

52
00:02:46,180 --> 00:02:47,180
All right.

53
00:02:47,180 --> 00:02:49,180
So there's sort of the environmental things are visually represented.

54
00:02:49,180 --> 00:02:50,180
All of it.

55
00:02:50,180 --> 00:02:56,840
And these assets were created using the Adobe Photoshop and Illustrator.

56
00:02:56,840 --> 00:02:57,840
Uh-huh.

57
00:02:57,840 --> 00:03:02,000
So we imported those assets in and then scripted in the animation.

58
00:03:02,000 --> 00:03:07,460
So when I click here, this mouse click and the transitions are written in JavaFX script.

59
00:03:07,460 --> 00:03:10,140
Everything else was directly exported out of the tool.

60
00:03:10,140 --> 00:03:11,360
Right.

61
00:03:11,360 --> 00:03:16,240
So I can now take you to some of the code and show you how this was done.

62
00:03:16,240 --> 00:03:19,380
So right here is the actual application.

63
00:03:19,380 --> 00:03:21,080
This is the scripted code.

64
00:03:21,080 --> 00:03:24,240
Like if you take something as simple as how do I animate an image.

65
00:03:24,240 --> 00:03:25,240
Right.

66
00:03:25,240 --> 00:03:30,200
That's this piece of code right here that does the animation.

67
00:03:30,200 --> 00:03:36,240
And so I guess this is the FX script stuff that we're looking at, right?

68
00:03:36,240 --> 00:03:37,240
Yes.

69
00:03:37,240 --> 00:03:39,240
This is FX script and it has keyframe animations.

70
00:03:39,240 --> 00:03:45,960
It's got repeat count, timelines, and then what it is that you want to animate.

71
00:03:45,960 --> 00:03:49,340
And so you play for a while and then you pause.

72
00:03:49,340 --> 00:03:53,700
And all of it that it's doing, it's loading the original images that came from Photoshop.

73
00:03:53,700 --> 00:03:54,700
Right.

74
00:03:54,700 --> 00:03:57,860
And I'll show you now the images itself.

75
00:03:57,860 --> 00:04:05,580
So right here are the moon, the Prague, I think, had it because it's nighttime there.

76
00:04:05,580 --> 00:04:06,900
There was a moon.

77
00:04:06,900 --> 00:04:08,560
There's the sun, which was in Palo Alto.

78
00:04:08,560 --> 00:04:09,560
Right.

79
00:04:09,560 --> 00:04:13,700
And you can choose to animate it or if it's raining, the animation for rain is all done in

80
00:04:13,700 --> 00:04:15,460
script code right here.

81
00:04:15,460 --> 00:04:16,460
Right.

82
00:04:16,460 --> 00:04:17,460
Right.

83
00:04:17,460 --> 00:04:19,640
So you're actually using the script code to sort of move the images around.

84
00:04:19,640 --> 00:04:20,640
Any interaction.

85
00:04:20,640 --> 00:04:21,640
Yes.

86
00:04:21,640 --> 00:04:24,060
We're saying, obviously.

87
00:04:24,060 --> 00:04:26,760
Everything that has interactivity is done using the code.

88
00:04:26,760 --> 00:04:27,760
Okay.

89
00:04:27,760 --> 00:04:28,760
On our end.

90
00:04:28,760 --> 00:04:34,080
But all of these PNGs, the lightning and thunder and all of these effects, were drawn by somebody

91
00:04:34,080 --> 00:04:35,080
else, an artist.

92
00:04:35,080 --> 00:04:36,080
Right.

93
00:04:36,080 --> 00:04:37,340
And we didn't have to do anything with it.

94
00:04:37,340 --> 00:04:39,720
You just import the code and it comes in.

95
00:04:39,720 --> 00:04:42,940
And here's the rain, PNG for rain.

96
00:04:42,940 --> 00:04:45,740
So each of these assets comes in as is.

97
00:04:45,740 --> 00:04:47,700
There's no coding involved.

98
00:04:47,700 --> 00:04:52,500
The only part of coding that you do is in these files where you're actually creating the animations

99
00:04:52,500 --> 00:04:55,200
and or movement or whatever you're calling it.

100
00:04:55,200 --> 00:04:56,200
That makes sense.

101
00:04:56,200 --> 00:04:57,200
Yeah, yeah.

102
00:04:57,200 --> 00:04:59,200
I think animation is the proper word.

103
00:04:59,200 --> 00:05:06,520
And also I want to draw your attention to this palette on the right side that lets you drag

104
00:05:06,520 --> 00:05:08,220
and drop components.

105
00:05:08,220 --> 00:05:12,800
It has support for swing components for more enterprise-ish applications.

106
00:05:12,800 --> 00:05:17,220
And we have the notion of common and extensions.

107
00:05:17,220 --> 00:05:18,220
Okay.

108
00:05:18,220 --> 00:05:24,720
So to the point about supporting multiple screens, we have one common set of APIs that'll be across

109
00:05:24,720 --> 00:05:29,100
all screens including mobile, TV, desktop, browser.

110
00:05:29,100 --> 00:05:33,800
And then there's extensions like Swing which will only work on desktop.

111
00:05:33,800 --> 00:05:34,800
That makes sense.

112
00:05:34,800 --> 00:05:35,800
And so you'd be able to divide out.

113
00:05:35,800 --> 00:05:40,800
Like if I'm running on a desktop, I want to use this functionality versus the thing that

114
00:05:40,800 --> 00:05:41,800
would be available everywhere.

115
00:05:41,800 --> 00:05:42,800
Exactly.

116
00:05:42,800 --> 00:05:47,520
And so going forward, when we do deploy to mobile, all of this will be grayed out and

117
00:05:47,520 --> 00:05:48,800
you cannot use it.

118
00:05:48,800 --> 00:05:49,800
Right.

119
00:05:49,800 --> 00:05:54,000
So can you sort of add your own sort of component if you come up with some other --

120
00:05:54,000 --> 00:05:55,800
With extensions to the libraries?

121
00:05:55,800 --> 00:05:59,500
Well, currently the answer is no.

122
00:05:59,500 --> 00:06:04,800
We're doing what, you know, we can and we assume that anything you want to customize, you

123
00:06:04,800 --> 00:06:06,800
will do using your artwork or --

124
00:06:06,800 --> 00:06:07,800
Right, right, right.

125
00:06:07,800 --> 00:06:08,800
And create it in Java effects.

126
00:06:08,800 --> 00:06:09,800
Right.

127
00:06:09,800 --> 00:06:12,800
So any other library, these are Java supporting libraries basically.

128
00:06:12,800 --> 00:06:13,800
That makes sense.

129
00:06:13,800 --> 00:06:15,800
So we don't allow extensions there.

130
00:06:15,800 --> 00:06:18,800
But you can still sort of achieve your own UI components.

131
00:06:18,800 --> 00:06:20,800
It just doesn't show up in the palette over there.

132
00:06:20,800 --> 00:06:21,800
Exactly, yes.

133
00:06:21,800 --> 00:06:22,800
At the moment.

134
00:06:22,800 --> 00:06:24,800
You can definitely do your own type of scroll bar or anything.

135
00:06:24,800 --> 00:06:25,800
Sure.

136
00:06:25,800 --> 00:06:26,800
Yeah.

137
00:06:26,800 --> 00:06:27,800
You can recreate Winamp.

138
00:06:27,800 --> 00:06:28,800
Yeah.

139
00:06:28,800 --> 00:06:31,800
I don't know if I'm allowed to answer that.

140
00:06:31,800 --> 00:06:32,800
Right.

141
00:06:32,800 --> 00:06:33,800
Well, yeah.

142
00:06:33,800 --> 00:06:38,800
So you were talking about how you can have something in a browser or out of a browser,

143
00:06:38,800 --> 00:06:39,800
things like that.

144
00:06:39,800 --> 00:06:41,800
I mean, can you show us a little bit of that?

145
00:06:41,800 --> 00:06:42,800
Yeah, sure.

146
00:06:42,800 --> 00:06:46,800
So I have a different application here, which is also a weather application.

147
00:06:46,800 --> 00:06:49,800
To the point that you can have different look and feel for each of your application.

148
00:06:49,800 --> 00:06:51,800
You can customize it any which way.

149
00:06:51,800 --> 00:06:56,800
So here's another one that shows weather of all my friends and where they are and what the

150
00:06:56,800 --> 00:06:58,800
temperature is in the city they are at.

151
00:06:58,800 --> 00:07:03,800
And so I can drag this off the web page onto my desktop.

152
00:07:03,800 --> 00:07:04,800
Right.

153
00:07:04,800 --> 00:07:07,800
And it continues to exist here as an applet.

154
00:07:07,800 --> 00:07:11,800
It was an applet in the browser and now it's a resident desktop application.

155
00:07:11,800 --> 00:07:13,800
And it will continue to function.

156
00:07:13,800 --> 00:07:14,800
I can...

157
00:07:14,800 --> 00:07:19,800
Let me move it here so you can see it.

158
00:07:19,800 --> 00:07:21,800
We can zoom in and track our friends.

159
00:07:21,800 --> 00:07:22,800
Exactly.

160
00:07:22,800 --> 00:07:23,800
And that's where he's located.

161
00:07:23,800 --> 00:07:26,800
And this is the actual NASA data of the WorldWin application.

162
00:07:26,800 --> 00:07:29,800
So it shows me where my friend is.

163
00:07:29,800 --> 00:07:30,800
Right.

164
00:07:30,800 --> 00:07:34,800
And I can keep this and kill the browser and it will still continue to stay open.

165
00:07:34,800 --> 00:07:35,800
There you go.

166
00:07:35,800 --> 00:07:38,800
And so, I mean, just to rehash the idea.

167
00:07:38,800 --> 00:07:43,800
I mean, what's sort of the usage that you see people using this for?

168
00:07:43,800 --> 00:07:44,800
Like why...

169
00:07:44,800 --> 00:07:47,800
I mean, when would they think to have this sort of feature?

170
00:07:47,800 --> 00:07:53,800
Well, anytime you want access to your file system, the local cache data, for these kind of things.

171
00:07:53,800 --> 00:07:57,800
Like maybe I just wanted to persist without the browser all the time.

172
00:07:57,800 --> 00:08:00,800
The other kind of thing would be when you want to upload pictures.

173
00:08:00,800 --> 00:08:05,800
I usually always put them on my laptop and then I have to get in a browser and then upload it.

174
00:08:05,800 --> 00:08:15,800
Whereas if it's here, I can always have access to my file system and then let this resident application upload it to Flickr whenever I'm connected.

175
00:08:15,800 --> 00:08:16,800
Right.

176
00:08:16,800 --> 00:08:18,800
Instead of having to always be on a browser to do that.

177
00:08:18,800 --> 00:08:20,800
And then I assume there's more interactive drag and drop sort of thing.

178
00:08:20,800 --> 00:08:21,800
Sure.

179
00:08:21,800 --> 00:08:22,800
Like dropping the images.

180
00:08:22,800 --> 00:08:23,800
Oh, into this application.

181
00:08:23,800 --> 00:08:24,800
Right.

182
00:08:24,800 --> 00:08:25,800
Yes.

183
00:08:25,800 --> 00:08:26,800
Yeah.

184
00:08:26,800 --> 00:08:27,800
Right.

185
00:08:27,800 --> 00:08:31,800
So it kind of gives you, if you have a web application or a web thing going on, you can have sort of like a presence on the desktop.

186
00:08:31,800 --> 00:08:32,800
Yep.

187
00:08:32,800 --> 00:08:35,800
To manage not having that silly browse button that you always have to click.

188
00:08:35,800 --> 00:08:36,800
Oh, all of a sudden, yes.

189
00:08:36,800 --> 00:08:39,800
Was there other SDK things you wanted to show us?

190
00:08:39,800 --> 00:08:42,800
I think this is basically for the preview, this is what we have.

191
00:08:42,800 --> 00:08:43,800
Right.

192
00:08:43,800 --> 00:08:46,800
When we launch the 1.0, we'll have a whole lot more to show you.

193
00:08:46,800 --> 00:08:47,800
Right.

194
00:08:47,800 --> 00:08:48,800
Well, that'll be exciting.

195
00:08:48,800 --> 00:08:49,800
Well, thanks for showing that to us.

196
00:08:49,800 --> 00:08:50,800
Thank you.
