To install click the Add extension button. That's it.

The source code for the WIKI 2 extension is being checked by specialists of the Mozilla Foundation, Google, and Apple. You could also do it yourself at any point in time.

Kelly Slayton
Congratulations on this excellent venture… what a great idea!
Alexander Grigorievskiy
I use WIKI 2 every day and almost forgot how the original Wikipedia looks like.
What we do. Every page goes through several hundred of perfecting techniques; in live mode. Quite the same Wikipedia. Just better.

From Wikipedia, the free encyclopedia

Open Library
Open Library homepage in September 2011
Type of site
Digital library index
Available inEnglish
Alexa rankPositive decrease 16,427 (April 2014)[1]
Launched2006; 13 years ago (2006)
Current statusActive
Content license
data: public domain[2]
source code: AGPLv3[3]

Open Library is an online project intended to create "one web page for every book ever published". Created by Aaron Swartz[4][5], Brewster Kahle,[6] Alexis Rossi[7], Anand Chitipothu[7], and Rebecca Malamud[7], Open Library is a project of the non-profit Internet Archive and has been funded in part by a grant from the California State Library and the Kahle/Austin Foundation.

It provides access to many public domain and out-of-print books, which can be read online.

YouTube Encyclopedic

  • 1/5
    24 178
    22 557
    1 228
  • ✪ SVG Web Library and Open Web Advocacy
  • ✪ Web Alarms - View Live and Historical Alarms with Open Standards Library
  • ✪ HTTP jl Progressing library for all your Julia web needs
  • ✪ Publishing Bibliographic Records from Alma to the Library Link Network
  • ✪ Link the OPAC to Library Web Sites


>> NEUBERG: Hi, my name is Brad Neuberg. Today, I want to talk about the SVG Web Toolkit and some of the work we're doing around Open Web Advocacy. I want to remind everyone that this video is public, so make sure if you ask questions not to say anything that might not be public. So, I want to keep the talk pretty short, about 30 minutes, to leave a lot of time for Q&A. I want to do a lot of demos. You're going to need to see some interesting use cases of SVG plus being used with the SVG Web Toolkit. We'll talk about sort of the Open Web strategy a little bit and why Google cares about SVG. You know, why should be invest any time and energy into this? So the timeline of where we are I'll briefly compare and contrast SVG with other things that are out there to kind of figure out where does this is fit in. And I want to leave a lot of time for Q&A, and really depending on where the audience is, I can crack open the code editor and we can start to see how you use this. I can talk about the internals if you want to know what's going on in the inside of the system. So that's the general overview. And anytime, please feel free again to raise your hand and ask questions. So one thing that's really important to remember is that there's no plug-ins to download with this. This is a JavaScript toolkit. We're kind of cleverly using facilities that are already present on around 95% of the existing browsers, so we can instantly get coverage. And we've targeted a huge slew of browsers, so IE6, 7 & 8, Safari, Firefox. So you can start to deploy SVG content across most of the installed base. And that's really important and that was really the focus, not to make some kind of new technology but to really get to a point to develop this connection and start using part of the technology to kind of get out of that chicken and egg problem, to kind of induce some movement in the system . I want to say too that even though we've been working on this, it's been a really amazing team. I've done a lot of open source, and when we have anyone who shows up and can contribute it's amazing. I've had two the best people I've ever worked with show up and really do a huge amount of project. James Hight and Rick Masters, these guys are awesome. They've been hacking on their weekends. They contributed a lot of the cool stuff. You'll see we've got basic font support, video and audio, a lot of really cool stuff that they've done, and it's been really amazing. So I want to start out by showing you... This is Firefox, and this is the native Firefox support. And what we see here is just standard SVG. We've got some images from Flickr. We can interact with them and scale them. If you were to crack this open, you'd see pretty much JavaScript that looks and feels kind of like the JavaScript when you write JavaScript for an HTML page. But then we can take this and going in and out of Explorer. This is IE-7, and we see the same thing running with the same degree of fidelity. So that's really cool, because the developer doesn't even really know about this SVG Web Toolkit. You just add this into your page, and at that point you could start to use the standard as if it is native and supported. If we were to crack open this particular sample, what we would see is a bunch of JavaScript that is sort of scripting SVG elements. When you use the SVG Web Toolkit, you'll still feel like there's a native support. So if we were to crack this open, you'd see things like, you know, familiar friends if you've done JavaScript DOM programming like getElementById. So in that script for example it might grab a circle from the page and that just works createElement. So in HTML you generally have to say createElement form for example. In this, you have to add the name and space. We actually added a variable into the page to make it a little easier. But there you are. We make a circle. You can even script the style, and again it looks and feels like you have native support. So here we are changing the fill of the circle to red, and so on. You'll see we have the DOM. You can manipulate through this at events. So that's really unique. That's one of the big things. It not only does SVG support static SVG but also dynamic because you can really start to do some interesting things with this. By default, we only use kind of the magic that we're doing on Internet Explorer and we use the native support on Firefox, Safari, and Chrome. However, you can optionally override that and have SVG Web to do all of its magic on those browsers too. Now what's cool about that is that you can go beyond. So here we are. So instead of photos now, now we have videos that we can manipulate. And keep in mind, this is Internet Explorer 7. This is running in a virtual machine. This is the Bruno Trailer and the new Star Trek Trailer. So that's pretty cool. Now the video support, that's not natively supported by any browsers yet. So what's unique is we can optionally override the native support in the browser, going away from the default in order to get those extra features. Now that's really cool. That means that your project, you can start by using the native support in all of those other browsers. But then if you hit some bug that's in the native implementation or you want to use something that may not be as widely supported yet, you can then toggle on the SVG Web and it will sort of start using the same magic, and you'll see the same thing. The JavaScript will interact to the SVG and it will look and feel like it's really a part of the browser. This becomes really cool, because I want to show you fonts, SVG fonts. Those are natively supported by Safari but not Firefox yet. So by, in that scenario turning this on, you can then get that same 95% coverage. So that's really cool. So that can also act as a positive spur to help try out some of the newer things, see how those gel with developers and then the other browsers can sort of natively fill those in. Just before I jump on, any question so farm what you've seen? No questions? Yes, Romy? >> ROMY: Does--is this using Flash? >> NEUBERG: Yes. So, Romy's question is, is this using Flash? On the inside, we use a slew of different tricks. So we used Flash to do the displaying. We used something called Microsoft Behaviors to actually kind of get some of the magic around the JavaScript type of work. The reason we choose Flash is that it has a 97% install base. So like I said, we kind of cleverly used various facilities that are already present on the browser so the users don't have to install anything. So right, the actual rendering when SVG Web does its magic is Flash. We used Flash 9 and 4 which was the one that has... We're not using Flash 10 yet because it doesn't have as much coverage. Any question? So right, like I said, you can use this--this is the whole reason we did this. Today, you can use this to deploy real content across 95% of the existing web. So that was the goal. And it's as easy as dropping a script source into your page. When we get to the Q&A, I can go a little bit more into what configuration of deployment looks like, but basically you add a script to your page. And at this point, we're supporting a lot of the SVG 1.1 standard. There are some, you know, there are some areas that aren't covered. And there's a few areas where you have to just slightly change what you're doing. But in general, it's a tremendous amount of, it just feels like native support. Now there's actually two ways to embed. We support using the object tag, it has a syntax similar to this. And then we also support dropping directly into normal HTML. So you could drop this in the normal HTML. It doesn't have to be XHTML. It could just be a normal plain old, plain vanilla HTML. And the way you do that is we actually--an HTML file allows this, by the way. You use a script tag and you set the mime type, and then you just drop your SVG right into the page. So that can really be nice for certain scenarios because you might have normal HTML. Your JavaScript in the page can still manipulate this. You can integrate with HTML a little better. So those are the two deployment options we support right now. So I want to show you a couple of cool demos. These Tetris demo is actually written where it's embedded directly into a normal HTML page. And I'm going to show this, this is a Safari, but it's actually overriding the native renderer, and we have Tetris. This is fun debugging this actually, it's like I get to play Tetris while I'm working. It's just nice. And here we are. So again, pretty straightforward stuff. That's just great. It just looks and feels the same. This is a really cool one. One of the volunteers in our community put this together. One of the unique things about SVG and I'll now go over when do you want to use the SVG versus Canvas and where does it make sense? One of the real nice things about SVG is it can make real sense for sort of when you want something that's more than an image. And what you're going to see for this, this is a population pyramid that's pulling population statistics for different countries. And in real time, you can translate all the texts on the page to different languages, into Russian, into Cyrillican, into German. That's really cool because at the end of the day SVG is just text which is really nice too because it's really easy to make a PHP script or an App-engine script that just shoots out SVG that might have data embedded into it. This is a nice use case. This is actually Safari with its native support. We see the two different population demographics. And I'll actually do all the toggling in IE so you can get to see how this guy actually works. So the monitor is a little small but right here we have a language toggle. Let's change this into Russian. You will see that it has now been translated into Russian. Now what's really cool again because this is more than an image. It's text. You can do things like that. You can also interact with it. So, outside of this is, is a normal HTML page. And as we go over this, we have directly embedded SVG into the page using that script tag approach you saw. So something like this. I know the volunteer who created this, he used an existing kind of demo. He was able to put this together really fast. So running in IE. I'd like to call this one, I'd like to call--this is the hello world of vector graphics. If you've ever... Ray Flat, he knows this one. The reason I want to show you this one is one of the things that makes SVG unique is the fact that it's resolution independent. You are able to give one size. And whether you are looking at an iPhone or you're looking at a 40-inch monitor, what you're dealing with can scale and still stay beautiful and still stay legible. So, this is the tiger. This is the hello world of vectors. I'm just showing you, we're going to zoom in. This is actually known as the view box. By default, an SVG image will just display how it needs to display. But you can have more control of it of what's called the view box to say, you know. Actually, fit it into something really, really big so it's going to zoom out or something really, really small. So you can actually animate that and do interesting things. Here right now, we'll just toggle the button to change the view box. So notice as we zoom in, it doesn't pixelate. It stays beautiful. So you can imagine on an iPhone which has good SVG support as the user pinches and zooms in, the text, the images is going to stay legible and nice. So, fonts. We've got basic font support. And what's really unique about SVG fonts is they're just text. I like to call them, they're a cut and paste technology. And I'll show you a little snippet. Safari natively supports them. Let me show what that looks like. This right here is actually the DroidSans fonts which come on the Android phone, which is a nice font. It's actually open source. And we just ran it through a little converter and turn into SVG font which is just plain text you drop in your page just like you would an image. Here it is natively supported. But then, we come over to IE. And we see the same thing with the same fidelity. So what's really--again, when it comes--again, keep in the back of your mind, 95% coverage drop a JavaScript library into the page. Now, this isn't just showing, "Hey, this is cool stuff you can use five years from now," you know. Yes, Ray. >> RAY: Are those fonts rendered a sort of shape fills or are they rendered using the full on rendering capability of the browser with like clear typed on windows and so on and so forth? >> NEUBERG: So the question is are these fonts being rendered as shape fills or are they going into the sort of full OS support? So SVG fonts are interesting. They are--you can think of them more as the application letter. They--you define a glyph. Like you say, "Here's the letter A." And then you say, "And here's the SVG commands to draw that." So, it's not dropping down into a native OS support. And we only support a subset, we only say, "You can have a path statement." So, right, you're not going to get any sort of acceleration or other things that might be at the OS layer. >> RAY: This sub-pixel rendering that's really, you know, that's really.... >> NEUBERG: Right. >> RAY: You know, that's one of the--that's one of the arguments for, I think, a Canvas. >> NEUBERG: Yeah. >> RAY: HTML 5, does have that kind of font rendering fidelity? >> NEUBERG: So, the question is getting the sub pixel rendering is one of the arguments for the HTML Canvas? Yeah. So there's pros and cons. So the nice thing about this is it's something you can start using. Personally, I really hope this sort of CSS way of importing a true-type file or open type file. I hope that in the long run, it becomes the standard way to do things, but it could be--it could be awhile. So, good question. I'd like to say, you know, when would you use this? I want to you show you a sample of when this makes sense. One of the nice things about SVG is you can start combining these things together. You'll see some animations, some fonts, some filters, so whenever you want to start combining these things together, that's when it makes sense. If you just want a nice headline, this is probably overkill. And you probably want to use something called like Cipher or something like that. So when you want to start doing fancy things, I'll show you a good demo in a little bit where you're combining these things in an interesting way, then it--then it starts making sense. Oh, and I also want to say of course the iPhone supports SVG fonts. Yes. >> You know, what about Android? Can it support it? >> NEUBERG: Yeah, Android is an unfortunate story. Android is something we can't support. It doesn't have--they use a Web Kit, but they've clipped out a lot of Web Kit extensions. There's some cool stuff from Web Kit that's simply clipped out. Plus, there's no Flash, so there's not much that we can do. It's an unfortunate situation. So, I'm going to have this load up an SVG font demo on the iPhone. I guess we don't have a camera. I might have to pass this around the audience, huh? I hope we can keep this up on the screen. You probably can't see it. We kind of see exactly the same font. And of course, this really does support as you zoom in and out. And so I want to give this to you, so feel free to hand it around, and zoom it in and out. So like I said, they're really straightforward, they're just text. They're just a bunch of glyphs, right? If a glyph name equals "A", you need to find A, you give your data. You can technically actually support full SVG, and it will really support the path statement, which gets you pretty far right now. And right--if you're rendering a whole document, or you want something with that kind of sub-pixel, you're not going to get that right now. So, we fully support you scripting with JavaScript, but there's--there's a couple of downsides with that that's really, really good for more experienced developers. We also support basic animation. This is also known as Smile. But we support basic Smile. So this is--this can be really nice for more beginner developers. It also actually allows us to do some performance improvements when you're actually using SVG Web because we don't have to do as much talking back and forth, so you can get better performance. But here's an example of that. I'm going to show you a video, and you can actually add these, all sorts of tags. So, right here, we're adding a video tag. I've kind of clipped off some of the attributes so it can fit. And then we say animate and it's really straightforward. We're saying animate the width from 400 to 300 pixels, start at two seconds after the document's loaded. Go for five seconds. And then when it's done, freeze at the final state. It's--I mean, you could do that with JavaScript. And that's--it's pretty nice to be able to do with the simple tag especially again if you have some PHP, or an App Engine, that's spitting out some code, that can just add it in for like animated menus or something. So this one--this is actually combining those animation tags along with SVG audio. So there's no JavaScript, you see a little, little scimitar shimmering things. So there's no JavaScript in this page, it's just those animation tags. I didn't have the--I can--I think Rick Masters might have added that--the music. I think it's like open-source music or something. So, again, if you were to crack this one open, you could see a bunch of anime tags. You'd see--but one of the cool things about SVG is you can group things together. Just like in Photoshop, you know, you can grab all these things, group them together, treat them as a unit. Same thing in SVG, we can actually have some quite complicated drawing commands for the scimitar which might have been exported from Illustrator. And we can say as a group, you know, animate this from this exposition to this exposition with a single tag and then start this music when things happen. And again one of the cool things is you can animate all sorts of things. So here we are. This is actually kind of a test page. You see various different things there and then the jerkiness because I'm playing this in a virtual machine instead of Macro SX (ph). So, you have those different squares that are moving based on the anime tags. Of course, you can also say not just on duration, but you can say start or stop something when you have an event that happened such as a clip. And we are restarting. So that's still pretty experimental but we have quite a lot already in. Now remember, I mentioned how some of this stuff comes together when you combine them together. We're hosting in the fall the SVG open conference here at Google. And here's the banner that they have made. And this is a really nice kind of showing everything coming together. This is IE7 again. You'll see certain things fly in. The screen is a little dark. So the contrast isn't correct. But over on the upper right, you see SVG open net, that's even more yellow on my screen. That's a font with the blur filter on it. You see gradients. Everything that flew in it's just these simple anime tags. And this was a great use case. This file was written by someone who's another not a programmer, they're graphic designers. But they were able to use Illustrator and Inkscape, put it together and then put these things together pretty quickly. So, why SVG? Why does Google care about SVG? So one of the things that's important is SVG is sort of a part of the HTML 5 family of technologies. I'll touch on that a little bit more but HTML 5 talks about here's how you embed SVG into a normal HTML page. One of the things I really respect about the HTML 5 process is you need to show that there's market demand. You need to show that there's some valid use cases for something to make it an HTML 5. I like that process. So, the SVG folks showed, here are some valid use cases, where this is important. So, it's--as a part of the HTML 5 initiative and Firefox 3.5 actually has support for this, it's not turned on by default yet. But it's probably gonna come soon. What's exciting about that, in the past you had to use X HTML which like, 0.000001 percent might have used to use SVG and now you can drop it into the 99.9 repeating bar that most of the content is under and that's nice, kind of freeze things up. One of the really unique things about SVG is it is searchable, now this doesn't make sense when you have a tiger illustration but when you have an electoral map of the U.S., with all the states, such as Wikipedia, and I'll talk about Wikipedia in a bit. We're talking about--it make sense when you got a medical diagram, you've now opened up a lot of interesting content, especially expert oriented content, that can now be searched. And it's in our interest to make sure the web doesn't become big binary blobs. And that makes sense for certain use cases like video. But it's nice when we can prevent that, you know, and have open searchable things. I already mentioned Market Demand. One of the unique things about SVG that it uses existing web skills, so when we get to Q&A I can crack open one of these things, but again, it pretty much feels like you're interacting with a DOM and JavaScript, HTML, and so on, CSS. What I like to say is, these are view source technologies; it's already been great getting these things. I always look for test cases and I learned just by view source, you know. That population demo, if that had been a big binary blob, I could have been, like, "Hey, that's really cool, how did you that?" And they may not have told me. But I was able to crack it open and say, wow, that's an interesting, and it's nice and I learned. So, these are cut and paste technologies, just like the YouTube embed script. So, if you see something that you like and of course, you always have to respect Copyright but that's inherent in HTML already. Then you can learn and if some things open, you could easily use it, like that open font. That DroidSans font is open source. So, if you like it, you could cut and paste it, add it into your file and go forward. One of the really cool things, is that--it's really server friendly. Yes, you can have PHP that spits out some binary flash or something like that. It's not easy. It's really easy to do that. Especially now, the way that we allow to directly embed into normal HTML. We use it, we use it, for example, and presently, in Google maps and in our internal closure, we use it as sort of one of our drawing surfaces when there's native support. And finally, one the really key use cases, is import and export. When you're dealing with assets, when you have like that map of the U.S. and I want to show you a really cool demo. This shows Canvas being used with SVG. You don't want that to be 10,000 lines of JavaScript that calls for drawing a map of the U.S., you know. What you want is you want to import that resource to SVG and then add whatever magic on top of that, using Canvas. That's where that starts to make sense. So, I wanted to quickly touch on the timeline, actually, there's couple of details I didn't mention. One is the library of 60k. So, if you have native support, you actually don't take that hit, but that's pretty nice. You have a lot of support in 60k. Right now, we have an Alpha build, Wikipedia, they have a monster repository of SVG, they're gonna use SVG web to present that stuff to Internet Explorer, I'm working with them on a tool for that. The big focus right now is performance and bug fixes and community support; sort of people are starting to use this. In the fall, the first week of October, we're hosting the SVG open conference here at Google. There's gonna be lots of--the Raphael folks are gonna be there, Jojo of GFX, and Gavin is involved with some of those folks. There's gonna be a lot of really interesting presentations and we're also going to kind of more formally unveil the work we've been doing with this along with others outside. And after that, I originally wanted to have a date of release, I think it's gonna be more of an early access release. And of course, more advocacy, in terms of the timeline. You know, so, I've mentioned this open web strategy. When we started our open web advocacy group, we're like, what the heck is this? What does it mean to do open web advocacy and we took as our goal, we want to help accelerate the rate at which developers can actually use this stuff. We saw ourselves as a bit more of sort of cross browser team, and one of the ways we sort of mapped out that, how you do this is we came up with what we called, communication credibility and capability. So, we said, capability is just actually being able to use something, you know. Where can I use CSS 3 for example; like getting that capability across enough browsers that developers feel comfortably using it? So, native browsers support all the great work that the web kit and the Chrome teams have been doing, in terms of getting good browser support and then JavaScript tool kit. That's my background and that's where I can help contribute through JavaScript shims. They can help get the capability up faster, so we don't have to wait so long. And then, credibility, this is something that more propriety plug-ins have done very well. They'll make claims like, you can run this, you know, more than 90% on the web. We wanted to come up with similar numbers and then use those JavaScript tool kits to help that. So, we can now say, you can use this almost--almost on a 100%, we say 95% to be conservative, that's up there. Without the JavaScript tool kit, it's more like 30%. So, developers, when they numbers like that feel more comfortable starting to use something. And then, getting traditional advocacy wins. And so, Wikipedia or folks that embrace using this and says, "Hey, we've done this, and here's how we're doing it and here is how you can do it too." And then, finally communication, blogging, articles, presentations, so that's kind of how we think about what the heck we're doing on the open web advocacy team when we started. So, before I jump on, any questions about what you've seen so far? Any questions over VC? No questions? All right. So, I want to quickly compare and contrast--I'm--I'm going to skip HTML 5, because I already spoke, about how this fits to HTML 5. It's--it's not necessarily a part of the spec, but the spec says, here's how you embed SVG, in the normal HTML, and that is major new feature of the HTML 5. How does fit with Canvas? Well, I want to show you a really, really cool nice shot of the Canvas and SVG tags that Mozilla did. But I think really, it help shows the various strengths of the two technologies. So, this is the--this doesn't use SVG web at all, this uses a native support. This is a download tracker, for the Mozilla downloads. What you see on the left is a map of the U.S.; on the right you see the browsers kept open at persistent connection over to the server, in real time, to find out who's downloading something. And then you see, it might be a little small unfortunately, do you see those little red dots that are appearing on top? Do you see as I zoom in, do you see them appearing and disappearing? The map is SVG. The red dots are Canvas. The red dots aren't interactive, SVG excels when you want to do light interactivity, in a user interface oriented matter. Because we don't need that, the Canvas dots, that's a really good use case of Canvas. So, this is a nice sort of match up to show the technologies together, and so, one of the--of the strengths and which also can be one of the weaknesses. You have to choose your battles, SVG is like HTML, you get a DOM, when you add something, when you add a rectangle or a square, it's an object, you have a rectangle or a square on the page. That could be really nice, because it means that you can add event handling easily. It retains its identity; you can enumerate all those things. You can really do interesting things with that. Things like this, for example, adding an event handler is very straightforward. Now, if you're doing a side scrolling game that has no mouse interactivity and uses the keyboard to jump back and forth, you don't want that trait, you want Canvas; you want to just blip pixels. So, in graphics parlance these are known as a retained API and an immediate mode API. And in general, you have, you choose the right one for your project and you--if you choose an immediate mode API and you really wanted the retain mode, that means you're rebuilding all event detection and hit detection, you're building the tree yourself, that's a lot of code, it's a lot bugs, it's a lot time spent. So, SVG has a retain mode API, yeah, and Canvas is immediate mode. And so, here we see, SVG in that case is more high level, which depending on your needs, helps you or hurts you and Canvas is more low level, and again, that can be a pro or a con. So, when you start a project, you ask yourself things like, do I need import and export? Am I dealing with assets? Do I have tiger illustrations? So I have, you know, things like that, the SVG excels with that. It's very easy to make a user interface, if I had to do the population demo that you saw, that would be challenging with Canvas, you can do it. But it's not really a great use case. Interactive, especially when you start getting lightly interactive, SVG really is good at that. Medium animation, and by the way, that's also gonna be true for Canvas. Flash is fast, it's very fast. Both Canvas and SVG, there's--depending on the implementation there's a performance differential of 10% to 30% between each other, and that's probably, that's narrowing over time, to probably about 15%, but both of them, if you throw a lots of objects on the page, ten thousand bouncing balls, you're gonna bring both of them to their knees. So, choose your battles. And again, you have a tree of objects. Canvas really excels when you're doing--when I say non-interactive, the keyboard--if using the keyboard for a game, for example. That's not really interacting with the stuff that's on the page. It's kind of outside of that and so that's a good use case. I want to say SVG has accessibility written into it. It's a little bit more complicated of a story, but you can make your file accessible. None of the screen readers yet read it, but when they do, if you write your things right, they will be able to correctly say, this is a scimitar, this a population graph. So, there you go. Any questions about pixel? I want to say one thing that's really important is that both Flash and Silverlight have arrived at the fact that they need both. Which is actually true, you know, sometimes in the open source world we can have like Gnome versus KDE battles or you know, we always like civil wars. But you actually need both. And personally, Canvas is very important and so is SVG. But the corollaries are showing up on the other side, Flash 11, Flex 4, is going have something called FXG which is basically SVG with, you know, global replace, change a couple of names. And then of course, there's a Flash Drawing API. Which corresponds quite strongly to the Canvas AP1; that's what we use internally, in order to do a lot of the work. Silverlight of course has XAML, again which is mark-up. You have a circle tag and so on. And then there's a Drawing API. So those are gonna have both, you know, we don't want to walk around with just one arm, you know, we want to be able to have both in the open communities as well. So, here's the project page. I'm gonna jump into Q&A; we're going to do Q&A, one second. And I'll take questions, we've got about 15 minutes. So, depending where the audience is at, maybe that's enough, maybe you want to crack open some code, know more about the internals. Yeah, you have a question? So, the question is, it sounds like I said that there's not much performance difference between Canvas and SVG. So, what would be the benefits of Canvas? I didn't say that, there is a performance difference. Last I saw, someone found about a 20% performance. I saw a study about a year and a half ago, 20% to 30% percent. Again, neither of them is a silver bullet. Like I said, you have to choose what you're doing. If I were doing a side scrolling game--if I was doing a non-interactive graphic visualization with 10,000 data points, I would use Canvas. It's exactly, it's exactly when--it's when their benefits become their cons. So, when I have--if I wanted to have an interactive population graph, with all those lines, that would be a nightmare to build it on Canvas. I have to rebuild the whole bunch of facilities that I get for free. Yeah. Yeah, when I don't need to interact with all the stuff on the screen and if you have a tremendous data set, actually you're gonna bring both of them to their knees currently. But if you have a very, very large data set, I probably wouldn't want the bookkeeping of SVG with 10, 000 data nodes. But if I wanted something that's search engine friendly, spit out by PHP, so and I think at this point developers need to know when to use either one or how to do it. Any question? Oh, that's a good one. >> So, any hopes of shimming out Canvas for us as well? >> NEUBERG: So, that's already handled by the excellent Excanvas library, Emil Eklund, Erik Arvidsson, that's using VML under the covers. I know they've been--they've been exploring other renderers, like Silverlight. It's a mature project at this point; it's been out for a few years. They--they were supporting a huge amount of the API. I know there's some newer things that--are you looking at supporting those things or...? Actually do you want to answer the question? Why don't you come? Because it's recorded. We've got one of the creators of the Excanvas library, which is really is, like the sister project of SVG Web. >> So, Explorer Canvas currently supports most of the Canvas specification, there are some newer additions though like saving image data and clipping and a certain gradient support that is very hard for us to support with VML, which is the back end of the Explorer Canvas emulation. >> Well, you know, rendering quality is kind of crappy especially with like curved lines and things, so, I'm just wonder if we get a higher fidelity Canvas by using different rendering technology? >> We've been exploring that and we currently have an alternative renderer using Silverlights. We have not looked into using Flash at the moment. But maybe we could combine our forces and do that in the future. >> NEUBERG: That--that's interesting. I know that the Silverlight work is really interesting. Yeah, maybe, you know, especially we've done a lot of work around eking out performance of the Flash JS Bridge, that might be useful. And especially if you can combine, I know Ray Cromwell has done a lot of cool work, if you can introduce batch operations, you know, maybe just slightly add a couple of methods saying, you know, for example, last week, I implemented suspend withdraw which has helped performance hugely and this week, I'm doing document fragment. So, these are all essentially batch operations which would really help the performance. The Canvas AP doesn't currently have those in them. But if you could add them [laughs]. You know, start batch, end batch and then Ray Cromwell has done some good work and that could help performance. Which you're right, there is--there is an impedance mismatch. We have that over in the Flash line too, you know, we have Bezier curves, or some certain things, we've been able to patch over a lot of those. There are a few things we can't support like smaller than one pixel, line drawing and stuff. But it's, you know. Has that answered your question, though? So, any other questions? Yeah, uh-huh. So, the question is how is the performance over the Flash JS boundary for SVG web especially for event handling? The first thing to say is a shim will never match a native performance. This is a temporary solution, unfortunately on the web temporarily means like three years, you know, if you're lucky actually. So, you know it will always be less. But I've been able--I mean, it's a real focus of mine and I've had lots of performance sort of sessions where I focus on performance, one of the things that I am looking at now. I've been able to--for the last two weeks, get a hundred percent-fold speed improvement with some of the things I've been doing. And I'm hitting some other things. So, it's okay right now. If you may have seen some of the samples loaded very fast and some of them like the tiger and getting more complicated, it can take a little while. But I don't think we hit the ceiling of--of--of how you can get performance faster and I'll give one sample of that. The Flash JS boundary is always going to be slower, there are other possibilities, one is when you batch things up. So, combining everything with the suspend re-draw if I'm affecting 500 elements on the screen like the population graph, I turn that into one Flash JS call, that says here's what's to change. Other things I'm exploring are if you use Smile, if you programmatically create a Smile element, do the animation tags and send them over. At that point, everything lives in the rendering engine and you could potentially get very fast performance. So, there are all sorts of things I'm exploring along this continuum. Is that--and I haven't yet had a use case that had tremendous numbers of events arriving from the other side. So, I haven't seen a bottleneck yet on that one. Yeah, I haven't seen a bottleneck yet on that but I'm always looking for good use cases that help find bottlenecks because it helps me to optimize. >> Uh-huh, I got that right. Yeah, I had--one of the question which was about normalizing SVG support across browsers, you know, for all the browsers except for IE, actually we have SVG and you've done a lot work presenting a normal API. Do you have this idea of like bridging? So, for example, if a browser doesn't support Smile, can you, you know, implement Smile for that browser of it is just like you wanted to drop into Flash as quickly as possible? >> NEUBERG: Yeah, I don't have it in that fine grained, you know, I started out with the whole complicated capabilities type of thing and I was like, "I'm going to make this the simplest as I can until I see actually what developers want." So, at this point, it's the binary decision. You can drop a metatag into your page and the metatag says, you know, "Name equals spg.render.forceflash," that's true or false and that will force Flash for all browsers. You can also overwrite on URL which can help when you're testing. I will probably at some point introduce the ability to target some specific user agents. I've been surprised--Safari's SVG support is excellent, so is Operas, Firefoxes, hmm. So, I might make it possible for you to say, use SVG web on IE and Firefox and let Safari and Chrome do their thing natively in Opera. So, no, the answer to your question right now is no. It's a binary decision. And again, remember, I want to--I want to really avoid this--the laser focus, this provides dynamic and static SVG support. I don't want this to turn this into an uber-tool kit that tries to be a complete emulation of the entire standards based web. And even--I'm not even that wedded to standards, it's more, you know, what--at this point, we're going to start experimenting for Java with an extra add on library at some point to make using SVG much more terse. So, huh, Ray? >> RAY: On the SVG text fonts what kind of support is there for complex script? >> NEUBERG: That's a good question. So, the question is when it comes to the SVG web fonts, what kind of support is there for complex scripts? I didn't build the SVG font support, Rick Masters did. So, I'm not as like deep into the details. SVG fonts have a lot of support for quite a lot of control over like the curning, going pretty deep and it is internationalized. I would suspect--I don't--we obviously don't have left or right to left control with what we have now. Since everything is just a path, I'm sure you could define, you know, here's the--here's a Thai character. But I don't think it would dynamically go right to left if that was needed. So, you could pro--you could display internationalized glyphs because they're under your control but, you know, top to bottom, right to left, is that kind of what you have in mind? >> RAY: Well, more things like automatic signatures and like mixed tools and like that kind of things and stuff. >> NEUBERG: We--yeah, we--we--so, it comes to the animation video, we hit the low hanging fruit on a lot of this. >> RAY: Sure. >> NEUBERG: The SVG 1.1 support of the core is quite strong. But for those kinds of low hanging fruits we're like, [sighs] we're so close and they're really cool. So, we hit probably like the 80%. But when it comes to more advanced, that's going to have to grow over time. And by the way, I don't think if you noticed, this is a very iterative approach, right? But when it get--that's always been the idea. Can you get a usable set of this stuff that you can use in a production environment? Just like what we did with CSS. You get enough, solve real use cases and you grow from there. And you hit enough browsers that folks can actually use this stuff. Hey, let's take one more question or not. Okay, everyone, thanks so much.


Book database and digital lending library

Its book information is collected from the Library of Congress, other libraries, and, as well as from user contributions through a Wiki-like interface.[5] If books are available in digital form, a button labelled "Read" appears next to its catalog listing. Links to where books can be purchased or borrowed are also provided.

There are different entities in the database:

  • authors
  • works (which are the aggregate of all books with the same title and text)
  • editions (which are different publications of the corresponding works)

Open Library claims to have 6 million authors and 20 million books (not works), and about one million public domain books available as digitized books.[8] Tens of thousands of modern books were made available from four[9] and then 150 libraries and publishers[10] for ebook digital lending.


Open Library began in 2006 with Aaron Swartz as the original engineer and leader of Open the Library's technical team.[4][5] The project was led by George Oates from April 2009 to December 2011.[11] Oates was responsible for a complete site redesign during her tenure.[12] In 2015, the project was continued by Giovanni Damiola and then Brenton Cheng and Mek Karpeles in 2016.

The site was redesigned and relaunched in May 2010. Its codebase is on GitHub.[13] The site uses Infobase, its own database framework based on PostgreSQL, and Infogami, its own Wiki engine written in Python.[14] The source code to the site is published under the GNU Affero General Public License.[15][3]

Books for the blind and dyslexic

The website was relaunched adding ADA compliance and offering over 1 million modern and older books to the print disabled in May 2010[16] using the DAISY Digital Talking Book.[17] Under certain provisions of United States copyright law, libraries are sometimes able to reproduce copyrighted works in formats accessible to users with disabilities.[18][19]

See also


  1. ^ " Site Info". Alexa Internet. Archived from the original on 2015-02-16. Retrieved 2014-04-01.
  2. ^ Who owns the Open Library catalog?
  3. ^ a b "openlibrary/LICENSE at master · internetarchive/openlibrary · GitHub". Archived from the original on 2017-01-22. Retrieved 2015-06-26.
  4. ^ a b "A library bigger than any building". BBC News. 2007-07-31. Archived from the original on 2009-11-27. Retrieved 2010-07-06.
  5. ^ a b c Grossman, Wendy M (2009-01-22). "Why you can't find a library book in your search engine". The Guardian. London. Archived from the original on 2014-01-14. Retrieved 2010-07-06.
  6. ^ "Aaron Swartz: howtoget". Archived from the original on 2015-05-23. Retrieved 2015-06-05.
  7. ^ a b c "The Open Library Team | Open Library". Retrieved 2018-07-16.
  8. ^ "About Us". Archived from the original on 2015-06-27. Retrieved 2015-06-26.
  9. ^ Fowler, Geoffrey A. (2010-06-29). "Libraries Have a Novel Idea - WSJ". Archived from the original on 2016-10-28. Retrieved 2015-06-26.
  10. ^ "Internet Archive Forums: In-Library eBook Lending Program Launched". 2011-02-22. Retrieved 2015-06-26.
  11. ^ "George". Retrieved 2015-06-26.
  12. ^ Oates, George (2010-03-17). "Announcing the Open Library redesign « The Open Library Blog". Archived from the original on 2015-06-27. Retrieved 2015-06-26.
  13. ^ "internetarchive/openlibrary · GitHub". Archived from the original on 2015-08-10. Retrieved 2015-06-26.
  14. ^ "About the Technology". Archived from the original on 2015-06-27. Retrieved 2015-06-26.
  15. ^ "Developers / Licensing". Archived from the original on 2015-06-27. Retrieved 2015-06-26.
  16. ^ "Project puts 1M books online for blind, dyslexic |". 2010-05-05. Archived from the original on 2011-12-17. Retrieved 2015-06-26.
  17. ^ "Welcome to Daisy Books for the Print Disabled". Internet Archive. Retrieved 10 December 2012.
  18. ^ "NLS Factsheets: Copyright Law Amendment, 1996: PL 104-197". Library of Congress NLS Factsheets. Library of Congress. Archived from the original on 2017-05-21.
  19. ^ Scheid, Maria. "Copyright and Accessibility". Copyright Corner. The Ohio State University Libraries. Archived from the original on 2016-06-30.

Further reading

External links

This page was last edited on 11 January 2019, at 19:14
Basis of this page is in Wikipedia. Text is available under the CC BY-SA 3.0 Unported License. Non-text media are available under their specified licenses. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc. WIKI 2 is an independent company and has no affiliation with Wikimedia Foundation.