a demo of Zembly. So why don't you take us through that? Cool. So as I mentioned, Zembly is about creating social applications for social platforms like Facebook, OpenSocial, Meibo, iPhone web apps and others. And so let me jump into a demo and show you what I mean. So here what I have is I have my Facebook profile and I have an application here called Favorite Movies. And I'll just switch to that. And what this does is it's very simple. It's just a demo app to give you an idea of what this is all about. What it lets me do is declare what my favorite movies are to my friends. They can see my movies. I can see theirs. And my list of favorite movies goes on to my profile. So I've picked a couple of movies. And now coming back to my profile, I'm going to reload. Let me just take a second. And what you should see now is that list of movies, except it's just a textual list. There are no movie posters. So what I'd like to do is that this is a Zembly application. Now I can go in and actually modify that application right in front of you. And you'll come back and see those changes. So coming back to Zembly, I'm going to go through my profile here, my landing page. So this is my landing page in Zembly. I have a profile. And that's because, again, Zembly is about social programming or social development. So the idea is that I'm working on these social applications that I'm building together with other people. So that means that I can reuse pieces and parts that they've created in the commons or that they've allowed me to use and vice versa. Alright, so there's a library of snippets or whatever you might want to call it out there. Functionality. Exactly. Of live functions. So I can see what my friends are doing. So we have an activity feed for that.
2:02So I can watch as my friends are creating some of these new snippets and bits of functionality. When they're publishing something new, when they're bringing something online or offline and so on. Or when other people come and they comment on what I'm doing or maybe they're asking for help or that kind of thing. So in terms of what you actually work on at Zembly, there are really two primary types of things. There's what we call services. Services are a little bit of server side glue logic. It lets you implement the functionality of your application to run on the server. And then there are widgets that are really the user interface or the front end. And those are the pieces that you see in the platforms like Facebook or OpenSocial or Meibo. Right. So there's kind of like a three tier model even going here where there's a UI layer and then the services. And then the back end, I guess, is the actual thing out there that you're integrating with. The back end is the web. Right, right, right. What it comes down to. Exactly. And so taking those, just what you mentioned, those parts and then combining them into collections is what is creating that social application. And then you're able to take that application and target a particular platform. What I want to show you now is, I want to show you that application that I just showed you, the favorite movies application. And so what you see here is, let me just scroll down. This is an application actually that my colleague Yurka created. And he invited me to collaborate on this, which means I can also edit this application. You can see there are various things I can do with this, some today, some very quick facts about this. And I mentioned we'll be adding analytics very shortly, very deep kind of social analytics. And you'll see people commenting here and so leaving notes and really talking about this thing. And so coming back up to the top, what you see is a control panel for this application.
4:02So when Yurka created the app, what he did was walk through a 90 second wizard to hook this up to Facebook. Okay. And so when he did that, once he did that, now any changes he makes or I make now that I'm collaborating with him are pushed back to Facebook live. So as I'm modifying the application, that's live there on Facebook. So… And can you not do that? Like if you want to like stage the development of it? Yeah. So you can actually do, you know, we provide some very helpful tools for you to actually test and do some of that stuff before you actually publish it. So it's not until you hit the publish button that that actually goes live out there. Right, right. And then coming along in the next couple of months, we're actually going to have really this idea of the live version of the app and a completely development sandbox version of the app. And Facebook, it's not easy to do that with something like Facebook because you're calling real live services and it's very hard to kind of, you know, do that. And we'll also see here is the list of pieces and parts of the application. So when you create that Facebook application here in Zembley, the first time through, it's about 90 seconds. What we do is we create a number of pieces and parts for kind of a skeleton Hello World application. So that includes like a profile box, a help page, a terms of service. And then you go in and you customize that for your application. And then you can add more. So you can add more canvas pages, for example. Or you can tweak the way that we, you know, that the application sets the content on the user profile. Right. You have sort of that nice template system. Like, for example, you get in Rails and other things like that where it sort of spits out a skeleton, if you will. Yeah, you know, that's one of the, one of the really interesting things that I think about Zembley is that, you know, again, because of this social programming element, you know, unless, unless developers just completely close off what they're doing, everything becomes a template.
6:05So the idea is that I can take this application and I can actually come down and clone it. So I can clone this app, tweak it, you know, you know, learn from that, build, build and so on. So any interesting app that I find there in Zembley that's, that's open, I can take and, and use as that template. So that could be anything from something very small up to, you know, a huge, you know, very complicated application. Is there, I, that's probably not, but is there like a re-merge sort of thing if you wanted to match the clones back together? Not yet. Definitely not yet. But we do have, it's, it's, we, we definitely track that, that, you know, that relationship. Yeah. Right. And again, back to this, uh, social element of things, there's a rating here, uh, for this application. So users are able to rate the applications as well as assign qualities. Um, but also when that's cloned, that factors into that rating, that factors into the, the, uh, reputation around the application and the developer. So that, uh, you know, there's always that, you know, here's a cool app, but it was descended from something that Todd did earlier. And it descended from something that Yurka did earlier. And so there's still that, that, that sense of ownership. That's interesting. And so, so I was mentioning the pieces and parts. What I want to do is I want to modify one of those, one of those, uh, pieces. And this is a little bit of server side logic, uh, uh, for the application. And before I, before I look inside this, uh, this service, uh, let me just show you a little bit. This is what we call the, the description page or the info page for this thing. And, uh, I talked a little bit earlier, uh, we were on the couch about bringing some sanity to the web, um, uh, you know, for developers. And so what we're doing is we're, we're really trying to add some consistency in the way that, uh, people, uh, you know, developers are able to, uh, find things as well as, uh, see consistent metadata, get formal metadata so that they can take these. Uh, you know, this, this, uh, service is not just usable in this application.
8:05It's actually usable, um, uh, from outside the application, uh, as a web API. So that means that you can write a PHP application, for example, that calls this service. Or you can write a rich internet application, uh, that uses this service. And, um, you know, that description of that and everything that people build at Zembli is, has some structure. Right. And that's a huge value to developers today where it's kind of a wild, wild west scenario. You can also see, uh, here's some information on, on usage of this. Uh, there's a timeline for, uh, you know, what's been happening here as well as, you know, comments. Uh, it's the kind of puppy. Yeah. Right, right, nice. Right. So now let me look inside this and, and tweak it like I mentioned. I'm always waiting for someone to, uh, figure out how to take advantage of the, uh, the horizontal scroll bar. Yeah. I remember, I remember a long time ago I saw a site for like the Spice Girls movie. It's gonna sound terrible. And they, uh, instead of scrolling down, you would scroll across. And I was like, oh, that's a novel idea. Right. Well, we just need more. We just need horizontal scroll, you know, buttons on that. We need more Megadrill bands. Yeah. That's gonna drive usability. That's true. It is. That's, that's one of the drivers of the internet. Um, so, so now, um, thankfully without the horizontal scroll you can see it all at one time. Um, looking inside this service, uh, what you're seeing is, uh, uh, an editor with a very simple JavaScript, uh, uh, script. And this is, this runs on the server and it's about 30 lines of code. And just to give you an idea of, of, uh, you know, some people ask, okay, why an editor? Um, you know, can I just visually assemble these things? And, and we will add that ease of use over time. But, you know, our, our focus today is really on making sure that you can build those real applications so that really anything you see on Facebook, you could build in assembly. And you can take advantage of the social graph and you can take advantage of powerful web APIs. Like in this case, um, here's Amazon simple storage service. This is a one line function call. So to do this in Java, using Amazon's framework is 134 lines of code.
10:10And that's not because Java's bad and JavaScript's good or anything like that. It's really just, you know, targeting a different level of productivity and a different level of, of, you know, user, user skill. So what we're trying to do with assembly is target, uh, what we call the casual developer or the casual technologist, someone that, um, you know, is not the, the, the deep, uh, software engineer, but, you know, can still do a little scripting and that kind of thing to, you know, to build these kinds of applications. And that idea I mentioned before about, you know, everything's a template. The idea that you can take something and then tweak it. You don't have to start from scratch all the time. Like what software engineers typically have to do to build those applications. Right, you can get over the, the blank screen syndrome. Yeah, exactly. Staring at a flashing cursor. The tyranny of the, you know, the blank editor. So I mentioned there's a one line function called Amazon, uh, to store the data for this application for each user. And then scrolling down what you see is, uh, is a little bit of just string parsing code. And then here's another one line function called back to Facebook to actually set that profile box content. So we're trying to make it very easy to, to use that existing programming model that people are, uh, familiar with for the applications. And then, you know, through the social programming, uh, effect, you know, make this easier and easier over time with higher level frameworks and templates and things. Great. So the one thing I want to change here is I'm just going to comment this out. And then I mentioned, uh, you know, like a wiki, what I do is publish a new version of that. And so when I publish that new version, it's live. And so now coming back to Facebook, uh, you remember the application here, I'm going to add another movie and then coming back to my profile, I'm just going to reload. Give that one second. And so now what you'll see is the list of movies with the movie posters. And by the way, those movie posters are coming from Flixster. So again, this idea of, you know, reusing the richness of the web to build those applications rather than doing everything yourself. Right. And, and the, the point there being the sort of compositing or mashing up or whatever you
12:12want to call it, you're, you're pulling multiple things together to, to one screen or, or whatever you call the little box there. Yeah. Profile box. Yeah, exactly. One of the other things I want to show you very quickly, uh, before I go on to the second part of the demo is, um, you know, one of the interesting things about Zembley, um, in terms of, of building for these different, uh, social platforms is that, uh, it's, it's pretty easy to build hybrid applications. And so we've built something we call, uh, pixel life, which is a iPhone Facebook hybrid app. So, um, the idea is that, um, you know, I'm bored on the train and I kind of want to, uh, you know, uh, tell my friends in a visual way, uh, kind of what I'm thinking or what I'm seeing. And so when I do that, um, I just hit the button and then coming back here in Facebook, I'm going to reload. And what you're going to see is, uh, you know, that same image that I just did. And my friends are notified of that. It goes into my newsfeed. So it's using all the, you know, all the, all the features. Oh, right. You know, of, uh, the platform to actually make that an interesting social application. Right. So now what I'd like to do is, is, um, show you a little bit more about the social programming and the collaborative element of Zembley. Mm-hmm. And, uh, so what I'm going to do is I'm going to create, uh, a new service. So this is again, a little bit of server side logic written in JavaScript. Just give that one second. And so here it is. I just created this one. Uh, I can actually just run this. There's no deployment. There's no, you know, hosting that you're thinking of. It's actually just, just there because, uh, you're building this at, at Zembley. And so now what I want to do is I want to take, modify these five lines of code, uh, to actually, uh, do something with Flickr. Oh, I thought we were going to like build Dr. Spates or Elsa or something. Yeah. We'll get there. Yeah. Um, so, so how do I, how do I make use of that, that kind of stuff? So what we do is we can go here to, um, you know, the find and use tab and I'm going to search on Flickr. Give that a second.
14:12And so in the search results here, what you're seeing is two things. You're seeing the raw Flickr APIs that we've made available and very easy to call in that one line function style within Zembley, but also things that other users of Zembley have built that have something to do with Flickr or on top of Flickr. And so it may be, uh, really just a friendlier version of the Flickr API. Sure. Or it could be, um, a mashup of, let's say the Flickr API and the Twitter API. And this is just sort of collaborative reuse stuff you were talking about before. Exactly. And, um, and we also, um, we also make it very easy. Uh, you know, if there's something out there that, uh, let's say a website like Yahoo Finance, and you'd love to be able to take some data from that, uh, and use it in your application, but there's no API. Um, so, uh, we integrate with our partner, uh, Dapper. So Dapper.net, um, they, they do, they do a really cool thing. But what they do is, is take any webpage on the internet and turn it into an API. And you can get the results. So I can go to Yahoo Finance, for example, and say I want these three pieces of data. And I identify that just in the browser by selecting some, those pieces of, of information on the webpage. And then they return that to me in XML or JSON or lots of other ways. Right. They sort of give you an, an API to screen scraping, if you will. Yeah, yeah. And they handle the messiness of that. Exactly. That scraping. Exactly. And we also make it easy to call Yahoo Pipe. So anything that, uh, any kind of RSS fees that people have built, uh, you know, information feeds, it's very easy to call, uh, through pipes. So that's the, uh, you know, kind of the search element of this. But again, this idea of social programming, uh, involves also your, uh, social graph. So I, I have contacts in, uh, in friends in Zambly. And I may want to use what they're building, uh, because, uh, uh, you know, I know them. I trust them. I, I have an idea of their skill level and so on. And so what I'm doing is I'm going to something that, uh, my friend, uh, Gail has created.
16:12Um, she's created a service that gets the list of interesting photos from Flickr. And I can see there's, you know, no parameters. This looks really easy to call. Let's try that. So I click the add to editor link and boom, there's that one line function call added to my program that does something cool to call Flickr. Now I want to point out, um, here, uh, this name. So, uh, Gail, it's Gail Anderson. Um, every user on Zambly has the opportunity to choose what we call a codename. Uh, and so the codename is really your private, uh, or really public namespace of things you create at Zambly. So as you create something at Zambly, uh, and other people reuse that, your codename goes into their code, um, and vice versa. So there are a couple of reasons why that's interesting. Me as a developer, it's kind of nice to see that name around and see that people are using my stuff and that makes me feel, uh, you know, feel good. But also, uh, for people looking at, uh, you know, the script, you can see, oh, here's somebody, uh, doing something with Flickr. Maybe she knows more about Flickr or maybe she's somebody that, uh, you know, is really, I can learn from, uh, let me befriend her and add her to my social graph and connect. So, so now that I've done that, I can come back and, and notice I'm doing all this without publishing it. So this is all just, you know, within my private sandbox here. I can run this, uh, service again. And what it's doing is it's going to Gale service, which is then going to Flickr, to actually pull that data structure of the interesting, uh, photos of the day. And then this is a, a JSON, uh, structure, which means that over here in my script, it's very easy to consume. It's just a, a, an object with some, with, with, with some attributes that are very easy to, uh, uh, consume and that I can call other services like Twitter and so on. Right, right. Now, I, I mean, that, that's, that's one of the things I like is because it reminds me of the database browsers of, uh, a different type of, of programming where it's exploring live data is often a faster way to figure out the model behind something. Yeah.
18:12Actually like looking at some wacky chart with boxes and arrows on it. Yeah. And that's true. And, and you know, the thing today is, um, uh, I mean, it, it, it's hard to overestimate just the value of being able to say, let me call this, you know, this thing I found on the web right now and just look at what I get back. You know, today you go to, uh, let's say the Flickr API page or the Amazon page or, you know, whatever API page you have. And sometimes they have examples, sometimes they don't, or, you know, how to find the example. I mean, it's, it's actually pretty tough to find that information and it slows you down in the process of, of, you know, developing your app. So the idea, the ability to be able to just, you know, instantly do that without all that overhead is, is really what Zembley's, uh, you know, all about trying to make it easier for developers to build these kinds of things. Right. That makes sense. So that's the end of the demo I have for you. That's right. Well, that's exciting. Well, thanks for showing that to us. Absolutely. My pleasure.