So, thank you for coming today. Can everybody hear me? Microphone's on? Okay. I'm here today to talk to you about a brand new project that is called deep camera. So, I'm going to switch from the website to the slides. Yeah. You might have heard of this before if you've talked to me or to a few people who have been involved in the past few days. But we are unveiling today something that we hope is going to be the future of cameras you brought in Linux. There's a brand new website that has just been launched live. You can go to leapcamera.org and see that. Please note during my talk, I would prefer if you could listen instead of looking at the computers. So, I'll start by quickly explaining why and the reasons behind this project and then we'll dive into the subject. I won't repeat the talk that was given by Morrow, who I believe is in the room somewhere. Yesterday, when he explained the problems we have with camera support in Linux and the solutions that we're trying to develop, so I'll briefly summarize the problem and then concentrate on the solutions. The problem we have, the why question is, I believe you all know in this room that we have an API in the kernel called video for Linux v52 that has been developed for a long time. We've had camera support in Linux for more than a decade. I was close to say two decades but that might be just a bit too long. And we've traditionally supported PC-based hardware that were more or less following the given model, given hardware architecture, and so we modeled the user's base API around that. And at some point, we also started supporting embedded systems. They were at the time pretty simple. So, you more or less had a camera sensor that was connected to SoC. There wasn't much going on the SoC side. You had an interface that was a camera sensor. You had possibly a scanner for my conversion, not much, and everything was exposed through the V-File 2 API. So, it was just as simple as that. After some time, hardware became more complex. That's a picture from 2009-2010. So, when hardware became more complex, this is much simpler than what we can find in some systems today. But we found that we had to depart from the traditional model and instead of exposing a camera as a single device node to user space with a single API to control that, we had to let user space dive in the device and expose the internal topology and let applications on user space at least control have more finite great control on the device and on older components that were composing this device. So, at that point, we introduced new APIs in the kernel. We introduced an API called the media controller. We introduced extensions to the V-File 2 API to support that. And it became more complex for user space as well because you have more complexity at the hardware level. You have more complexity in the kernel. You have a more complex API exposed to user space. You can't do any magic. It became more complex for applications too. So, traditionally, applications would just interact with a simple device through a single V-File 2 device node. With a large set of IOCTLs, kind of a large set of operations, I would like to say not too complex, but probably biased because I've been working in this field for too long. But, please, in my opinion, it's a situation that's manageable. When going to a more complex device, you had to interact with several device nodes using different APIs, and they were all interacting together. So, from a user space point of view, the additional complexity was required. You have a more complex device. You have more features. You want to control those features. You can implement way more use cases that you could before, so that requires more complex code in user space. The problem is that we push the complexity to user space, but kind of then ignore user space completely until people, well, we have this brand new kernel API. That's all great. Now you can use them. You can do marvelous things with your cameras. But how to do that? Well, it's more or less extensive documentation. Now, it's your problem, not ours. And that didn't really fly. We had devices that were developed at the time. I'm thinking in particular about Nokia phones. That's where these new APIs all started. Where applications running in user space were really tailored to the system. That was more or less okay. You could just hard code use cases in user space. You could hard code a lot of assumptions that you can have about your system because you know what your user space is going to run on. But that just didn't scale to regular video for Linux applications. So, the plan back then was to introduce a new layer and have everything go through LibV file. LibV file is a user space library. It mimics the V file to kernel API and exposes it to applications. So, from the application point of view, it can be either completely transparent and trapping the calls to LibC. Or you can explicitly link against the library and you replace your LibC calls like open IOC TLM map with V file to open V file to IOC TLV file to M map. And we sketched this architecture where LibV file would get support for plugins and we would have device specific plugins implemented by the device vendors and it would all be part of the LibV file code base and everything would be great and that never happened. Partly due to lack of time, at some point you all know that Nokia decided to move away from Linux so the camera team there who had lots of great projects and I'm not saying that we would have achieved what we wanted to do but we at least have a good excuse not to have done it. So, that's a problem we have today. This never happened and if it had happened, it wouldn't have been enough because what we have there is a library that will handle the additional complexity and hide that from video for Linux application which is great. You could use your regular V file to applications unmodified and still able to interface you with your complex cameras but if the hardware becomes more complex and if the regular V file to API is not enough to expose all those new features to use the space, well if we use a library that's going to expose exactly the same API, can't do any magic. Applications can expect the old features to work but nothing new. So, Leap Camera is a new project that we decided to launch. As it name implies, it's a library and I assume you can guess what it deals with. This is in very early stages of development. We have sketch and architecture. It's kind of high level. We have a list of features, things we want to do. Hopefully part of that are things that we will achieve. Part of that are certainly things that will change in the future because we will realize that not everything will work as expected and we also realize that the world is always much more complex than we would like it to be. But we do have an architecture. So, this is not just a camera library but it's a full camera stack in user space. That means that at the very top you're running applications. Those applications, the outside of the scope of the stack obviously, outside of the scope of the library, sorry. Under that what's in green and red in the diagram over there is part of the Leap Camera project. So, we have divided that in two parts. We have at the bottom in red the Leap Camera framework. So, that's the main part of Leap Camera. We have a library that is sitting on top of kernel devices, kernel drivers that expose an API to user space. And we also have optional language binding. So, the library will be implemented in C++. It's going to expose a C++ API. We do want compatibility with everything in user space. So, that means that we want to stay compatible with plain C applications as well. We're going to have a plain C API. We will likely have bindings for different languages as we go along. There's no fixed plan or deadlines on when that's going to happen. But if anyone is interested in particle language, of course I'm sure that people will contribute and submit patches. On top of that we have another layer in green called the Leap Camera adaptation layer. So, the idea there is to translate between this brand new API that's no application today supports to existing camera APIs in Linux, in the Linux world in general. So, one of them, of course, is the vfoil to API. We want to remain compatible. We want to implement compatibility with regular video for Linux applications. This will be done on a best effort basis because, as I mentioned, we have much more complex devices today. This means that using an old API that is based on a different hardware model will certainly run into limitations. So, we will not implement every feature possible. But the goal is to be able to use the camera in the same way you would use a webcam in a computer today. So, you have to be able to capture video stream in different resolutions, different formats, and all that should be done through the vfoil to API. So, that's one of the components. Then we have another component on the other side, which is an Android Camera Hull implementation. Camera support in Android is based on a really large component called the Camera Hull hardware abstraction layer that is developed by Divas vendors. The camera framework of Android sits on top of that. I say very large because it's, at the top of the hull, the API that's exposed is very high level and also very flexible. It allows you to do many things with the camera device that you have. It's obviously tailored for use cases that are more in the phone and tablet areas. But it does allow you to use all the features pretty much of cameras that you have today. Vendors ratio implement that there's a lot of code application because there's a large part of the hull that is not really vendor specific. But vendors definitely customize their hull implementation and they do implement in there the 3A and lots of image enhancements algorithms and we'll get back to that. So, we would like to have a standard Android Camera Hull implementation on top of the camera. When I say standard, it means that that would be a single implementation that would not contain any vendor specific code. Vendor specific code, as we'll see that still will be needed, will be all inside the main camera component, which means that tradition of VFull 2 applications, Android applications using natively the leap camera API and I'm thinking today of the Chrome OS camera stack where we plan to support Chrome OS as well and we've had technical discussions with the Chrome OS camera team who was very supportive of this project. They hosted a meeting in June in the Google office in Japan and they want to contribute to the project as well. Other applications based on G-streamer for instance, we want to target them as well, we want to have a G-streamer element that will be based on the camera. So, pretty much any application running on a Linux based system should be able to benefit from this project and get as many features as possible out of the camera without having a fragmented world as we have today where device vendors or SOC vendors will provide a full close source implementation for Android and leave you completely unsupported if you want to use a traditional Linux distribution or any other system. Now, let's dive into a bit more detail on what we want to do. I will start with presenting the features that we want to implement, the functionality that we want to expose and then I have a bit into how that will be implemented. Sorry, that's the wrong button. So, the first concept we have is the concept of a camera device. You should think of a camera device as what you would expect naturally as a developer but as an end user. If you ask anyone who's not, who has no exposure to software development, he's a phone, what's a camera in the phone? Well, they will give you a pretty straightforward answer. Well, I have two cameras in my phone, I have front camera, I have a back camera. They don't care whether how many sensors are used to implement that, they don't care if they're connected to the same ISP inside the SOC or what's in there. It's really the feature that exposed towards the outside world. So, that's the core concept we want to have in the library. We're going to expose camera devices and we're going to expose an API that will allow you to handle them. We will implement enumeration of those camera devices. It will be support to enumerate all camera devices available in the system with few additional features as well. We'll get to see that. The devices at the kernel level, the device nodes, all the underlying concepts, that will be hidden from the upper layer. So, new camera applications, space and leap camera, will not have to deal with slash dev slash video seven. They will have to deal with the concept of a camera device as a couple from that. We want to expose capabilities of devices. I mentioned that in today's devices the cameras are getting more and more complex. They have all kind of different capabilities that they support. The industry is moving in an direction where pretty much any vendor will want to implement what end users expect today, but they still try to differentiate. Features will vary from model to model from SOC vendor to SOC vendor from device to device. We want to be able to expose that. Because we have lots of features available in today's cameras, it also means that an API strictly based on features would be a bit impractical to use. From an application point of view, if you want to develop an application and say, well, I need to capture a video stream for video conferencing purpose, single stream that I want to display on the screen and I'm going to handle the encoding and streaming over the network, that's a high level functionality. If you need to go through a list of 300 features or capabilities and verify that the device implements every single one you need, or possibly that the device implements a feature that you would need, or another one that you could use as a workaround, that's becoming more complicated. So we will also have a higher view of features and we will have a concept of profiles where you could say, I want a camera device that implements a video conferencing profile. I want a camera device that is able to support the point and shoot camera profile. The next concept we will have is the concept of video streams. We want to be able to support streaming multiple streams of images from a single camera. The reason for that is that you may want to use your camera for several purposes at the same time. I mentioned video conferencing. You might want to have a different resolution on screen than the resolution you encode in stream over the network. You may want to display the live stream on the device screen and at the same time record that, record a video, and there could be a different resolution as well. You may want to take capture stream images in again different resolutions as well. So you need to be able to capture several streams in parallel. That's a feature that's available in many cameras today with different limitations, limitations to the number of streams to the resolutions it will support, but this will be built in into the live camera API. We want for given stream and for all streams, and that's where it becomes more complex, to implement what's called per frame control. So traditionally, a camera will expose lots of controls that will influence the images that are being acquired. You can think about exposure time, for instance, you're going to have lighter or darker images and you certainly want to adjust that based on the lighting conditions. You can think about lots of image enhancement features, video stabilization that you can implement. You want to implement probably a flash if you want to take still image captures in dark conditions. So a lot of things that we want to do. And traditionally in the VFile 2 API, we had support for variety of controls, but with one big limitation is that you are capturing a video stream with one frame after another and when setting a particular control, say you want to increase exposure time, you never knew when that would take effect. So all the frames that are captured from the device are completely decoupled from the control of the capture and of the image processing. If you want to implement something that will allow you to have good quality out of camera, if you want to make sure that you always have the right brightness, right exposure time, if you want to implement autofocus, auto white balance, you will need to deal with all those controls, but you need to do that in a way that is really tied to the video stream. If you want to take a still image capture with flash, well, you don't want to activate a flash and receive an image that you captured that is either before or after the flash fires. So we'll support the concept of per frame controls where you can modify all those parameters for every frame that is being captured and in a way that is synchronized with the video stream. I mentioned 3A, which means three automatic algorithms, auto exposure, auto focus, auto white balance, and other image enhancements we can think about, I mentioned video stabilization for instance, but vendors can implement way more than that. The way this usually works is that you have a camera sensor that is connected to an ISP inside USOC, ISP is an image signal processor. That will capture images to memory, and the ISP is also able in most cases to generate statistics. It's going to generate Instagram, it's going to generate a whole range of statistics that tail it to camera usage. And then the component in blue marked as 3A is more or less a control loop. So if you remove that, you capture a stream of images and you can still modify the controls that will influence the images you capture, all the processing that is being done. But if you want to implement auto exposure, you will need to take an image, check whether it's overexposed or underexposed by how much, and then adjust the exposure time for the next frame. So you have a control loop there. You can have a very simple implementation in a hundred lines of code that's going to give you barely usable results. Or you can have an implementation that's a result of two or three years of research and development from device vendors where they really, really try to optimize the image quality. That's the main differentiating factor, at least from the point of view of SOC vendors today, and they do not want to release that in an open source license. Does they know how? At least is what they believe. I'm pretty sure they believe that nobody in the open source community could come up with an open source implementation that would measure the level of quality they have, because they're the best. It's not like the way that the open source community could never come up with GPU drivers, completely impossible. We want to create a framework in an ecosystem where open source re-implementations will be possible. We also want that framework to allow close source implementations from vendors, because that's what's available today. That's what people developing products want to use. That's what's used in the close source camera-high implementation that every SOC vendors provide, and we want to benefit from that. One of the last features that we want to implement in support is, I mentioned the adaptation layer. I mentioned the fact that we want to be able to support existing applications using existing APIs. So we'll have a vFile2 adaptation component. We'll have an Android camera-high implementation. I already briefly talked about that. And we plan to implement elements, components, adaptation components for any framework that would be of interest to the project. So initially we thought about vFile2, camera-high find rate, and G-streamer. If anyone in the future wants to support something else and contribute code, that certainly will be welcome. The framework will allow that. If we have module architecture, we can implement new components. Then, that was the high-level features that will be available from this. Next, if you look not from the outside point of view, but if we dive inside Leap Camera itself, this is the architecture that we have drafted today. I already mentioned the concept of camera device. That's going to be the core of the library. We'll have a camera device manager that will be able to enumerate devices. A camera device will be the main object you will interact with. A large part of the camera device as large as possible will be device agnostic. So we want to have as much code as possible that we can reuse and that can be shared between vendors. Today, in the Android world, vendors implement a completely closed source camera hull. All of them have to go through buffer management, memory allocation. They all have to go through a different set of tasks in which there's no added value. It's just a waste of resources. So we want to have that in a code base that's open source and that is also shared between different vendors. We will have vendor specific components in readiness diagram. There's two of them. We'll come back to that. We have two components called the pipeline handler and the image processing algorithms which we have already talked about. The camera device manager will allow an application to get a list of camera devices presented in the system. That's kind of straightforward. The plan is also to support hot plugging of cameras and in the other direction hot unplugging of cameras. So applications will be notified when new device appears in the system, will be notified when the device disappears from the system, hopefully without crashing. But that's more or less what's in the camera device manager. That's not going to be very complex. Then, and that's where it gets a little more interesting. I mentioned we have two pieces that are vendor specific. The pipeline handler is the first one. So what's a pipeline handler? We do have a camera sensor on the top left. Hopefully everybody can recognize the very neat picture. That's connected to receiver, in this case, for instance a CSI receiver. You can have any kind of interface. And it's very common to have the raw images being written to memory directly. We have a bigger ISP inside the system that has multiple components internally with various levels of complexity. That kind of perform various image processing tasks. And that ISP will generate one, multiple streams of images. As you mentioned before, we'll generate statistics as well. And all that will be written to memory. So to get this to work, we set up the first device with the camera sensor and the camera interface, and capture to memory. You need a buffer queue there. You need a pool of buffers. You need to allocate your memory. You need to capture. And all the images that are captured there, they need to be passed to the ISP device that will operate in a memory to memory fashion. So you can see that just to use this, even if you don't have a 3A algorithm implemented, a control loop, even if you don't use any kind of feature, just to be able to capture images that will be in anything other than raw format. So you think about converting the raw format to YUV. You need to write to memory, and you need to pass those buffers to a second device. You have two devices involved. So I mentioned in the beginning that we created kernel APIs that added lots of flexibility and exposed really fine-grained details. But that means that an application today will need to deal with intermediate buffers, while there's really no need to push that down as your application. So the pipeline handler is the software component that will handle that. That will handle the multiple buffer queues that will handle all the scheduling of the buffers. The configuration of the pipeline in the first place. If you want to configure your device to route the signals in different ways, I want to capture one, two, three streams. I need to configure my pipelines for that, the harder pipelines. And I need to allocate buffers. I need to pass buffers around. So all that will be implemented in the pipeline handler. We have difference. This is an example of an architecture that can be implemented by Divas Venda. But you could certainly have an ISP that has an integrated CSI receiver and doesn't have a buffer pool, doesn't have to go through memory, and have just a single harder pipeline. You can have ISPs that are more complicated than that. You can have ISPs that support either the direct pipeline or going through memory, depending on use case you want to have. So that's to some extent vendor specific. But the concept of having to manage buffer pools, of having to configure pipelines, of having to schedule buffers, all that is generic code. It's code that can be shared between vendors as well. We want to implement, as I mentioned, the 3A algorithms, all the image processing algorithms. So this is something I briefly explained already. I already mentioned that the blue component 3A is something that Divas Vendors want to keep close on for now. So the way this will work in lib camera is that you have your camera device internally. And it will be a 3A API to communicate between Steader code in green and a vendor specific component. That vendor specific component will talk this standard as API that will define. And the camera device the generic code will communicate with the kernel drivers. I mentioned this can be closed source. And that's a big problem. That's a big problem because well, first of all we want open source implementations, but that aside there are security issues. You're running entrusted vendor code. You're running entrusted code that's provided by SSC vendors who have a long history of making all their hardware perfect. Mail down, specter. You don't want to trust that. Even if the vendor is not evil and doesn't try to do something behind your back, it can be bugs. You don't want to crash your system or worse having your system hacked because of a faulty vendor 3A closed source implementation. So what we want to do there is to have the ability to isolate that component and to make it run in a sandbox environment. The way that's going to be implemented is that we will have the same 3A API that will be un-martialed and go over IPC. So the 3A component will be able to run completely and modify if you look at two slides before this image processing component. And here on the left-hand side, that's the same API, it goes over IPC and on the right-hand side it's exactly the same. So from a vendor point of view, running that inside the main process, running that in a separate process that will give the exact same API. What it means if you separate that in another process is that first of all it will not be able to access the memory space of the main camera process but then we can sandbox that, we can limit the system calls that are available. We can prevent the vendors from messing up with the system intentionally or if the code crashes in various ways to have malicious code messing up with the system. More than that, we can prevent the sandbox component over here from accessing the kernel drivers directly. We want an open source re-implementation. We want vendors, SOC vendors to play fair. We want them to publish open source kernel drivers that expose every control that the device has. We want them to document those controls. That's a requirement we have in video for Linux in the kernel. If a device vendor wants to upstream a driver and if they have a custom ALCTL there that just passes a binary blob of data to the hardware without documenting what's in there, we will not accept that. We require them to document the API. But it's a bit difficult to ensure that what it documents is actually to what's implemented. They could say we have a buffer of controls, of values, and here's a list of all the controls that you can use and what you do. But who guarantees that there's no other control there that is not documented? Who guarantees that a closer implementation doesn't just go directly to the kernel APIs without saying anything. Isolating and sandboxing the component will ensure that all the controls will have to go through APIs we control to code that we control and we will be able to prevent vendors from doing that behind the back. So they will still be able to ship the close source implementation. They don't have to disclose the know-how. If they think that the all-day image enhancement algorithms are the best in the world, that's fine. But they have to play fair. They have to make sure that the kernel drivers will be usable by the community by anyone who wants to implement 3A. So secreting and playing fair with the community. We will have lots of helpers and superclasses. I mentioned before that you want to locate buffers. You want to do scheduling there, running the pipeline, moving buffers around, interacting with kernel APIs. We will require the kernel drivers to use the standard Vfile 2 and media controller APIs because there's no reason to use a vendor custom API. We will do IPC for sandboxing. All that is our tasks that at least some of them are part of the pipeline handler, which is a vendor-specific component. But we don't want code to be duplicated even if that code is open source. So we'll have help and superclasses that the vendors will be able to use to minimize the amount of vendor-specific code. In the previous diagram, when go a few slides back to the architecture, yes, here, I mentioned the image processing algorithms, which are closed source. But the pipeline handler, that's a part that's device-specific. We expect the SoC vendors to provide that. But that's going to be open source. That will be part of the framework. And to offer support for camera, the device vendors will have to upstream that code. So that's not something that they will be able to isolate. The image processing algorithms will be loaded as plugins, external binary blobs. The pipeline handlers, they will be compiled in. They won't be able to ship anything close source there. They will have to explain how the device works, how the pipeline has to be set up. And then they can differentiate where it really matters. So back to where we were. Vfile to compatibility. This will be handled the same way that libvfile does today. We'll have a completely transparent layer, a shared object that you can LD preload inside the address space of your process of a regular Vfile to application that will intercept the libc files. And we'll just forward that and translate that to the lib camera API. You might want to also expose an API that can be called directly like the libvfile does today. We haven't really taken a decision there. But it's very important to have a system that's fully transparent because we want to support close source application as well. The Android compatibility. I already talked about that. There will be at least initially possibly some components like JPEG that might not be part of lib camera in the first place but that are required by the Android camera API. So part of the HAL might be implemented outside of lib camera. Android defines multiple hardware level support. We'll start with the simplest one and as time goes we'll make it more complex. The goal is to implement at least the full level compatibility and probably go behind it. Last point I want to mention. This is not a vendor project even if we are backed by SSE vendors who have expressed interest even if we have seen interest from the Chrome OS camera team. This is a project that's hosted on linuxtv.org for the source code repositories. You're all welcome to contribute. We have public mailing list. We have a public ISC channel. We have public ID trees or Git tree at the moment. So everything is public. We won't do development behind closed doors. Everything that is developed will be developed upstream first release very often. That means that initially at least it's going to be very unstable but that's the direction we want to take. And now that's been nearly 40 minutes. Any question? Yes? You want a microphone? Thank you. Can you elaborate? So you said we want, we will and stuff like this. Who is we? Very good question. So there are four people working on this project right now. They're all in the room. Won't be a surprise if I tell you that I'm working on that. Yes. Jacob Ho is sitting over there. Nicholas and Karen are all part of the mysterious leap camera team. We hope to expand later because this is going to be a community project. This is a community project. I mentioned interest from SOC vendors, which I won't name at this time but I mentioned also interest from the Chrome OS camera team. They want to contribute to this. And we're having discussions we'll try to get the Android team involved as well especially if it's more difficult. And if you think about anyone from the industry that should be involved we'll contact there. So how does it work with the IPC and passing big buffers of memory between the 3A algorithm implementation and the limb camera? So we're going to use DMA buff to share buffers so what's going to happen is that you will just pass the buffer handles so file descriptors over IPC and the 3 implementation if they need to access buffer contents we'll just embed those buffers inside 3 implementation and access the data. So we will not copy data in Marshall data but just the buffer handles. And this is sandboxing safe and that's okay. That's okay. Thanks. Sometimes the 3A algorithm is part of what the SOC vendor don't want to expose but also some of them don't really want to expose ISP at all because they really think that their IP is how to interact and even exposing how the ISP affects the image is a leak of IP somewhere. So how do you plan to deal with that? We can't do miracles. If you think about the GPU world that has gone through that initially vendors were very very secretive. It's getting slowly better to some extent. On the camera side we do have vendors that play fair and start working with them. We hope to show that adopting this will be a very good argument for vendors towards the customer. So we hope that this will push other vendors to do the same. I mentioned Google and Chrome OS as you may know Chrome OS wants to have everything in a kernel open source and nearly everything in user space open source as well. They understand that 3A they can't force the device vendors to open source 3A the same way that they can force them to open source the GPU binary blobs. But we also hope to work with companies in the industry who can put at least some pressure on device vendors, on SOC vendors as well. Question over there? A simple question. At the beginning you mentioned that you were open for well I'm part of Gstreamer so usually I might be the one writing the Gstreamer plugin. Possibly. But there was some ambiguity. You wanted to include it inside your repository or you're referring to this again? We do both. For the V file to compatibility layer and the Android Camera Hall it's going to be under control of Lib Camera. For Gstreamer we open to both models. In the initial discussion we thought it would be part of Gstreamer. If the Gstreamer community prefers to have that in Lib Camera that's an option as well. In the beginning at least if we start implementing that component very early it's probably easier to have both in the same repositories because both we level together and then possibly move to Gstreamer. If they build together at the beginning it's easier because we're breaking the API. Okay thanks. One last thing I want to mention is that everything I mentioned I explained here that's kind of high level. If there's any feature that you want to see implemented, if you have any comment on the architecture, if you think no this is not going to work for this or that reason, please get in touch with us. We're really open to feedback and this is not set in stone. So we already know that the architecture and the lease of features will evolve over time. So that's probably not for me because it will not work for what I'm doing. We want to make sure that it works for everybody. Yeah, well you had some statistics on the frame rates so to synchronize the frames and what's the load in the system because if there's like dropped frames and not consistent frame rates since it's going to be like completely configurable from the new drop. Right, so we certainly have APIs to interact with the frame rate. You have time stamps you have different features there but having support building to have statistics compute the number of frame drops and features to have debugging I think it's something that's very interesting that we would like to have so that's not planned yet but that's something that you mentioned I think that we should have that yes. So please don't hesitate to post the you wish list and the features you would like to have on the mailing list. So are there going to be any examples of how to use the library correctly in the source repository? There will going to be at least one test application there there's going to be a test suite and at some point but not so planned yet we probably create a graphical use interface application that we'll interface with that. We're running out of time I know that people want to go to the end game so I won't keep you any longer or one last question from Mauro? Yeah actually it's not a question I'm planning to port Kimorama as soon as we still will have something work in order to work your live camera so it is already a graphic camera application. Yes. So if that we will have some example on how to do it on another application. Well thank you for the future contribution. Okay thank you for attending the talk.


What's up Titans fans, this is D Henry and Piggie will see you in about a week. What's up y'all, Joshua Dobbs right here in Scottsdale, Arizona. What's up Titans fans, this is Shawley, we're here checking this. Let's get it. P.J.s while I work, I get paid from the grid. We'll cut down, cut down, don't show them. Back tiny bills, them grunge on brides, no cap, this is real. I tried a honey big deal, how do you feel? Got ya, got ya, got ya! Low G, wagging on for G, I don't, I can't flight, I'm trying, it's on, I'm They watchin' play by play, the people know it's me when I


Good morning and welcome to this week's edition of Encompass Live. I am your host, Krista Porter, here at the Nebraska Library Commission. Encompass Live is the Commission's weekly online event. We are a webinar, yes, covering anything of interest to libraries, variety of library topics and activities on the show. The show is broadcast live every Wednesday morning from 10 to 11 a.m. central time. So be sure to keep that in mind when you're trying to watch the show when we are in your time zone. We do a, but if you're unable to join us for the live show, that's okay as well. We do record the show every week as we are doing this morning and it is posted, the archive is posted to our website. If there are any presentations or slides or handouts included, we include those as well in our recording. I'll show you where that is at the end of today's show so you can see where you can access all of our recordings. Both the live show and the recordings are free and open to anyone to watch, so please do share with any of your friends, neighbors, family, colleagues, anyone you think that might be interested in any of our topics. They are welcome to come to our website and register for upcoming episodes or to watch any of our archives. I will give a warning, Encompass Live started in January 2009, so we do have some pretty old archives on there, some things that may be outdated, some information that is out of date, so just do keep that in mind. Everything does have a date of when it was originally broadcast, however, so you will know if something is maybe older and if you're watching it, you might want to be aware of that. We do do a mixture of things here on the show, book reviews, interviews, many training sessions, demos of services and products. Our only real criteria is that it's something library related, something libraries are actually doing, something we think they might be doing, some new services or products we think they may be interested in, so you'll find quite a variety on the show. We do have some presentations, some shows that our Nebraska Library Commission staff do the presentations, the things that we are actually promoting or doing here at the Library Commission Nebraska, but we also bring on guest speakers, and that's what we have this morning. Currently with us is Megan Boggs, good morning Megan. Hello, good morning. She is from Seward Memorial Library, which is just west a bit from Lincoln, and she is on the road, pretty easy hop. She's going to talk to us about Google Forms. I've used Google Forms a lot for various things here at the Library Commission. We actually do a mixture of things. We have some of our own forms that we do for signing up for things or collecting information, but we also use Google for other situations, and she's a great presentation to tell you about how you can do this at your library. So I will just hand it over to you Megan to tell us all about Google. Alright, thanks Krista. So we have been using Google Forms at our library for a few years now. We don't use it exclusively, kind of like the Commission. We kind of use a mix of different types of forms. But Google Forms really has some advantages, and one of the things that I love first of all about Google Forms is that anyone can use it. It's free, so it's not going to take a chunk out of your budget to be able to use Google Forms. And Google is just so pervasive now, most everyone already has a Google account, and so it's just a matter of putting that Google account to work for you. We like Google Forms for a variety of different types of ways to collect information. We've used Google Forms for quick little polls that we put out on our website, like who's your favorite children's book author, or what's your favorite nonfiction area, or just different things like that. We also have used it for different types of surveys that we've sent out, so that we can either send those out via email or we can post the link on social media or in our newsletter. We have been using it quite a bit for registrations for different types of programs. You can also use it for evaluations. So if you put on an event, you can make an evaluation type form in Google Forms and send that out afterwards. You can also use it for different types of applications, like maybe your volunteers, you have them apply to volunteer at your library and offer them some different types of jobs that they might be interested in. You can make an application form like that via Google Forms. So there's lots of uses and practical applications for libraries and any type of library and any library big or small.  That's another free thing that you can do with Google.  And you'll see this website that I've got on the screen here now. And it just has some of the basics about Google Forms. But then it has lots of different types of forms embedded into this site. So if you want to play around with it and see what your patrons would see, you can post forms embedded into sites like this location poll. Just a quick thing like, oh, well, where are you from? And I can type in here, Seward, and hit Submit, and it says your response has been recorded. And if I want to see other responses, I can click on See Previous Responses. And, oh, only one, just me. But if other people had responded, then we'd see more locations listed there. You can also have forms built into your website just via the use of a link. So like on this site here, I say here's a link for a program registration. And then they can click on that link, and it will actually take you out to another page where the form is. So here's an example of an after-school program registration. Google Forms is kind of neat because you can upload your own custom photos into it. So we've got a little photo there that I put in the background of some kids playing chess at our library. And you can put in different types of questions. They can be short answer questions. They can be multiple choice. They can be long paragraphs. There's a wide variety of types of questions that you can ask in Google Forms. And you can make certain ones required or not. So you can see here that some of these, like their name and their email address, I have all required. And here's an example of where they can choose which programs they want to register for. Just be a little checkboxes. And when they're done, you can also have it put in a little recapture so that you're not going to get a lot of spam responses, hopefully. But that's another example of a type of form that can be used. Let me switch back over to the site here. Another cool thing that you can do with Google Forms is that you can make photos part of the form itself. Like here's a little embedded form about Golden Sower winners. The Golden Sower is an award that Nebraska has for children's book authors. So here people can take a little poll and actually see some photos to remind them about the book. So those are just a few examples of some forms. But what I really want to do today for the most part of the presentation is actually walk you through this process of how to use Google Forms and show you the behind the scenes because it's really pretty simple. There's a lot that you can do with it, but it's not a hard process. And so it's something that could be really easy for any library to do. So the first thing that you would need to do is have a free Google account. And so I'm just going to start out here by opening up a new tab that takes me right to Google. And if you don't already have a free Google account, you can sign up at google.com. And then there's going to be a little sign in in the upper right hand corner where you sign into your Google account. And I'm already signed into our library's Google account. And then to access the forms, that is built into Google Drive. And Google Drive is kind of your online storage place for everything that you make with your Google account. And so to access that, once I'm signed in here, I can click on these little dots in the upper right hand corner, which gets me to all of the Google apps. And I'll find Drive listed here and click on that. This will take me to my Google Drive for the library. And if I'm starting a brand new form from scratch, I'm going to go over here to the new button in the upper left. And you can create new folders, you can upload files, you can create Google Docs, Google Spreadsheets. But we want to do forms, so it's going to be under more. And there you see it, Google Forms. And I can start with a blank form or I can use a template. If you've never done any Google Forms before, the templates are kind of nice because they get just started. They have a lot of pre-built templates for different types of forms, whether it's going to be a registration or a survey or a poll. And so those are kind of nice. But we're just going to go from scratch with a blank form. Wait for this to load. All right, so you get started with an untitled form. And let's just make this a form for maybe a program registration, maybe a story time. And so I'm going to start by naming this form something.  And if you want to, you can also give it a little description. This might be a good place to put in some general information about story time at your library. Story time is for children ages three through five and needs weekly on Tuesdays at 10 o'clock a.m. You know, whatever you wanted to put in there about your library's program. All right, once you have your title done and if you want to put a description in now, it's time to start adding questions to actually make your form work. They start you off with one untitled question. So we'll get started with that. And for a registration like story time, well, you're going to want to ask the child's name. So we'll make that the first thing. And so I typed in child's name and Google is so smart, like scarily smart. And so just by typing that in, it switched it from a multiple choice question to a short answer question. And I didn't even have to do that. It just did it automatically. I knew that it wasn't going to be the type of question where, you know, you get to choose. Well, what's your child's name? Is it Mary Sue or Bob? You only have those choices. No, it's going to be pretty. I like that. You don't even have to do anything. They knew that that was the type of question. Now, if you really did not want it to be a short answer type of question, you can click over here and this shows you all the other types of questions that you can ask. So it could be a paragraph, multiple choice checkboxes, maybe a dropdown menu with some choices. You can add a file upload option. So if you're doing some type of form where they need to send you something, a photo or something, there's a file upload option.  So there's lots of options in here. So we'll just stick with short answer. And then before I move on to adding another question, there are a few options here at the bottom.  If I know I'm going to have a lot of questions that are similar to this, there's a duplicate button. So I can duplicate this exact question and then just tweak it a little bit. And here's where I can choose if I want this to be a required question or not. They have to answer it. They cannot submit the form without answering it. So I'm going to say, yes, this one should be required. Now let me go ahead and add a second question. And that's using this little toolbar that's just right to the right of the form itself. And to add another question, it's this plus sign. And when I click on it, now I've got another question ready to go. And so another thing that you might want to ask is maybe you need to know their phone number. So I'll put that in as an option. And let's say that we'll make this one required also. Now here's another little cool thing that Google Forms can do. The three little dots that are located here next to the required. If I click on that, well, I could add a description to this particular question. If I feel it's a question that needs more explanation, I can do that. But what I want to show you is the response validation. So if I click on that, I don't want them to put in something like, I don't have a phone number or something. I want it to actually be a number. And so I can choose that what they put in there has to be a number. So that's a type of response validation. So it won't accept it if they put in something that's not a number. Other types of response validations. Well, you can also choose numbers that are greater than a certain number or equal to a certain number. They also have different types of text validations. So maybe if you were asking for an email, it has to contain the at sign. So that it's an email or there's just any types of things like that. If you want to make sure you're going to get the right type of answer, then you can add in these response validations and it will only accept answers that meet the criteria. I'm not actually going to do that though. So I'll just click the little X here and get rid of the response validation. All right, let me add in one more question. And we'll just make this a multiple choice question. It's not going to really have anything to do with story time. It's going to be... Let's see here. What is your child's favorite color? Maybe they get a name tag that is the favorite color. But I am going to make this one a multiple choice. And they have options of blue. They have options of purple. They have an option of pink and an option of yellow. And so that's how a multiple choice question would work. You just keep adding options. It's unlimited. I can just keep clicking on add option and type something in and add option and type something in. And you can also give the option of an other where they get a type in their own response. That's often used in forms. So if you want to get rid of any of these, there's little X's off to the side and you can erase any of the options that you put in there. So multiple choice questions are really simple with Google Forms as well. And one other thing that you'll notice is next to each one of these responses, blue, purple, pink, yellow. I have a little option over to the side next to the X of adding an image. And when I click on that, I can add images to this. If you want to put a little dab of pink, a little dab of yellow so they can visually see those colors. Maybe you've got a photo of those colors on your computer. You can upload images. You can also do a search. And maybe I want to search for yellow circle. And let's see if I find it. There we go. There's a yellow circle. I'm going to select that. I think I put it on the pink though. Whoops. That'll really confuse. I'll just change these. There we go. That one's pink. That one's yellow. Yeah. So the option of adding images to your form is really simple as well. Another thing that is really simple is just being able to change the order up. And so if I wanted to make yellow be the first choice in my multiple choice, these little dots that appear just to the left of the circle, I can click and drag on those dots and reorder my list to make it whatever I want it to be. So that's kind of nice as well. All right. Now let me show you a few of the things that are in this floating bar over here on the right in addition to adding new questions. You can also add more titles and descriptions. So maybe you have one group of questions and then you want to add another title and a description to kind of separate it out into a second group of questions. You can do that. And that just is those two T's there. You can also add in images that aren't really built into a question like we did with the colors here. But there is its own kind of thing. And that is on the floating toolbar over here. The third one down add image. And it takes you to the same place that we did before. You can upload images. You can search for images. You can access images that are already in your Google Drive. So lots of options for inserting images. Same thing with videos. That's the fourth one down from the top. You can add in videos. So maybe you're doing some kind of a form where part of it is they have to watch a little video and then answer some questions about it so you could have the video right there built into the form and it's not a separate thing that they have to do ahead of time at a different website. So I really like that feature. And then the last part of this floating toolbar is adding another section and it's also kind of I call it also adding another page of the form because when you finish the first section then you have to click next and it will take you to the second page to a new section of the form. And I like this feature a lot because it can do some neat things. So let me show you. I'm going to click on add section and here I have a new untitled section. I'm going to call it storytime continued. And I'll just add another question to it real quick. I'm going to say what age is your child? We'll make it three, four, or five. And then I'm going to add a third section, section three. We'll call this finish. And we'll add another section or another question. Let's add some kind of different type of question. Let's see here, maybe a checkbox. This could be we've used checkboxes before for types of questions where it's not just one answer. Maybe they can choose multiple things. So let's see here, which storytime do you want to attend? And maybe they have an option for Tuesday at 10 and Wednesday at 10 and Thursday at 4. And if they wanted to come to all three of those, they could checkbox all three. So I've got it divided into sections now. Now let me show you one of the cool things that you can do with these sections. Let's say that if they select yellow as their favorite color, they get to skip right over section two and jump to section three. Let me show you how you could do that. I'm going to go back up here to the question about favorite color.  And so if they answer yellow, they're going to go to section three, which is our finish section. But if they select blue, purple, or pink, it'll just continue to the next section. So we have used this type of thing before where for summer registration, for example, we wanted all ages to be able to use one form, but there were different types of programs depending on age. So on the first section, they would fill in their name, their phone number, and then they would select in a multiple choice what age range they were in. Were they story time preschool age kids? Were they kindergarten and through second graders? Were they third through fifth graders? And divided it out according to what our program divisions were. And then depending on what they answered as far as age, it would take them then directly to that section of the form where they could sign up for those programs that were appropriate for their age. And so they didn't have to wade through all these programs that didn't apply to them. You know, well, I'm a fifth grader or my child's a fifth grader. And so I'm not interested in story time. They can just skip right by it. So I really like that feature of how you can divide it out to different parts of the form based upon what someone answers in a previous question. I think that's really cool. All right. So those are some of the basics about just filling out a form as far as adding questions and that type of thing. Now let me show you some of the other cool features. The first part I want to show you is back up here at the top. We have some icons up in this purple area. And first icon I'm going to show you is the settings icon. And when you click on that, this is where you can choose some of the general settings for the form itself. Like do you want to limit it so that a person can only fill out the form one time, limit it to one response? They can do that, but people would have to sign into their Google account. So we don't often use it just because we don't want to require that everyone has a Google account to fill out most of our forms. But if it is something that you want to make sure that people don't respond more than one time, you can have that option. And here's another important option. Do you want your respondents to be able to go back and edit a form after they've submitted it or once it's done, it's done? And do you also want to give them the option of seeing what the other people have responded? So in a poll, like what's your favorite author, that's really fun because then somebody can click on it and see, oh, look at all the other authors that people like. But for something like a registration, you wouldn't want that because then everybody could see everyone else's phone numbers and all of that personal information. So it depends on the type of form that you're doing as to what you would choose. You can also choose if you want to collect their email addresses. And then what that does is it makes it part of the form itself. It will show an email address field and you don't actually have to manually add the question of email address to the form. It will do it on its own. And if you choose that those people can receive an email response with the answers to what they put in on the form, that's another part of it.  And then they always have that copy and they can remind themselves about it then and they're not having to call the library and say, did I sign my child up for this or not? And so we give that as an option if they want it. They can get a copy of their responses. So those are some of the general settings. There's also some presentation kinds of settings like if it's a long survey, do you want to show a progress bar so people know, oh man, I'm only halfway through the survey or oh, I'm almost done. Do you want to give the option of the questions being shuffled? Usually I kind of like the order that I put them in, but they do have that shuffle option. And then do you want to have a link that shows up after they hit submit and turn in the form to go back and submit the response? And for things like registrations, we do like to do that because a lot of times a family has more than one child. So then the link is right there so they can go back and fill it in for their second child. And then there are also the option of using a form for quizzes or kind of tests. We don't use this one very often in our library. We're a public library, but maybe some other libraries might have more use for this. It is kind of a really cool feature because if you do choose to make your form into a quiz, you can go through every question that you enter into your form and assign point values to it. You can have it auto grade for you and the respondents can go back and see, you know, what answers they got correct and what answers they didn't. So it's kind of a neat thing. So that is the settings and it's got a lot of useful features in there. I'm not going to make that a quiz. All right, the next one over the one that looks like a little eyeball. This is the preview button. And this is where you can actually see what your form looks like to the people who will actually be using your form. And so it takes away all those behind the scenes toolbars and stuff like that and shows what it would actually be like. So here is what the form would look like to someone. Storytime registration, they fill that stuff out. Here's the favorite colors. It would have been nice if I would have added circles that were blue, purple and pink. That would have been really nice. And then because we added those sections, that's why it's giving me the neck. It's giving me the next there. And to be able to go on to the next section, I would have to make sure that any of these required fields are actually filled out. If they're not filled out and I try to hit next, it'll say, hey, wait a minute, this is a required question. You better go back up there and fill those out. The preview is nice so you can actually kind of test it out. It's not going to record the responses. It's just going to allow you to test it out in a preview mode. So let me close that back down. All right. Then the next one moving to the left again is the one that looks like an artist's palette. And this is how you can customize your form according to colors. So maybe if your library is branded with a certain color scheme, you can switch your form colors over to that. And if you want even more customization, this bottom right circle is where you can upload your own images, or you can use some of the images that they have already built in. Oh, hey, look at this one. It's a book. It looks good for libraries. I'll select that one. Then the upload photos is in the bottom left here if you wanted to upload your own image to use on your form. And then I'll hit select. And it just takes a little while to load. But there it is. It put that book image up at the top. And so now my form looks kind of extra customized. Then the last one over to the left of the paint palette is add-ons. I'm going to talk about add-ons in a little bit, but I'm going to skip it for now. The next thing that you need to know if you have your form all customized, you've got your questions in there. You've set your color scheme. You've set how your settings are. You go through it and you kind of look it over again. Like, oh, I have this weird untitled thing in here. I better delete that, click on it, get rid of it. So you can go through and do your final tweaks. The last part that you need to do before you send this out is figure out how you want to collect the responses that you get for your form. So at the top of the form here, it's divided into questions and responses. We're in the questions mode right now.  But first of all, this is where you can turn on and turn off whether you're accepting responses or not. So I can say, no, I'm not accepting responses. So like if you put a link out there, like in your newsletter or something, but you're only going to accept responses for a certain amount of time, then if someone came across that link later, you could have it show a custom message here that says, you know, we're no longer accepting responses. But these three little lines, once again, will give you more options here. And here's where you can get some email notifications each time you get a response of your form.  You can delete all of the old responses and start over.  So I'm going to click on that. And I don't already have an existing spreadsheet where I want the answers to go. I'm going to go ahead and just make a new one. And I'm going to call this Test Form Responses. And I'll tell it to create it. And what it will do is it will create automatically a Google spreadsheet that is saved in your Google Drive. And it has it all ready for the responses to just start rolling in. So we asked for email address, name, phone number, favorite color, age, which story time do you want. You see those all listed across the top there. And let me, now I've said where I want the responses to go. And now if I click the Send button up here, I can choose, do I want to email this out to certain people? Do I want to embed it into, well not embed, I'm at the link one, sorry. Do I want to just have a link to this somewhere? This is the one I probably use most often. And usually I do the shortened URL, which gives me a decent sized link there. And I can copy that link and I can now put that link into my newsletter. I could put that link. I could put it in my website. I could send it out via email if I already have an email list for people. So the link one is usually the one that I use. Or they also have an embed where if you want to embed the actual form into your website, it gives you some HTML code for that. And you can choose the actual width and height in pixels that you want it to show up on your website. So lots of options there for sending it. And so I got that little link. And I'm going to paste that link into a new tab here just so that we can try it out. So here's the form. I'm going to actually fill it out here real quick. Must be a valid email address. Okay, it is. Sally Jones is the child's name. The phone number is<PHONE_NUMBER>. And the child's favorite color, I'm going to choose yellow because it's so bright and vivid there with the photo. And which story time? We're going to say they're going to do Tuesdays. Yes, send me a copy of my responses. So that way I remember that I registered her for Tuesday. And nope, I'm not a robot. And I'm going to submit it. Your response has been recorded. And look, there's the little link. If I want to go back now and submit another response. I'm going to close that tab. And I'm going to check here on my Google Sheet where I wanted all the responses to go. And sure enough. And I love that it time stamps it. That's not one of the questions that you have to ask or anything. It just automatically puts in a time stamp. So I know that this person who registered Sally Jones filled it out on October 25th at 1044. And so all the answers are right there. And I don't know the age of this child because remember when we set up the form, we said that if they answered yellow, it would skip over that section of the survey and go right to the other part. So that's why you're not seeing an answer to what is the age of the child. But yeah, just let me talk a little bit more about that time stamp. If you've ever done some kind of a survey or maybe you're only accepting registrations until noon on a certain day. This way you can see if somebody didn't quite get there at noon to be able to turn off the surveys so that you're not accepting any more responses. If any squeaked in after noon, you'd be able to tell because of that time stamp. So that's kind of nice. I just love that I can get the responses directly into spreadsheets using some of the other forms on our library's website that don't use Google forms. We get emails with the results of the form. And then if we want to, we have to manually enter everything into a spreadsheet. And I just love that it just does this automatically. Okay, so that is the basics of using Google forms. But if we just have about five or 10 more minutes before I answer some questions, I do want to show you a couple more little tips and tricks. I'm going to get here back into my Google Drive. And I'm going to show you. Oh, well here, let me show you this one real quick. So here's an example of a form that we used for summer program registration. And you can see that we actually made like a custom image that I uploaded for the top of the form. Had our library's logo and then the summer logo for the theme was just built right in. And so that helped people to know that it was actually, you know, the right thing that they were at. And here just a quick example, you can see that questions shows just like we were on our test form. But then responses, you can see 264. So if I click on responses here, there were actually 264 responses to this poll. And I can get kind of a general survey of all those answers. So if I wanted to actually see everything, I would go to the spreadsheet and view it in the spreadsheet. Let me go back now. I do want to show you those add-ons because that's something that's really kind of cool. I was hoping that I still had another thing in here. Hang with me. Okay, well, let's go through this one real quick. No, no, wrong one. Sorry. Okay. We'll just go back to this one. Okay. So here's the form for afterschool registrations. Let's say for your programs, your afterschool registrations here, that you've got some options. They can register for Lego Club, Story Club, Chest Club, Maker Club, or Pokemon Club. But let's say for one of these, it's limited in size. You can only take 15 kids. That's the maximum, and then it's going to cut off. That can get a little bit difficult to manage because if the registrations start rolling in, and there's not somebody who's constantly checking the spreadsheet to see, oh, have we hit the 15 child limit to that yet? How am I going to know when I have to turn that off? This is where things like add-ons come in handy. To access add-ons, you've got the send button here at the top. And just to the right of that, you've got the more button. And this is where you can go and actually find add-ons. If I click on add-ons here, it will bring up a place where I can search for different types of add-ons and try to figure out what it is I might need to help me accomplish this. And for that type of example, when a certain program is full, I want it to eliminate that as one of the choices. I found this add-on called Choice Eliminator 2. So I've got it. I already installed it. And now to actually use this add-on, I click on this add-ons button. And there it is, Choice Eliminator 2. And I'm going to configure this add-on. It takes a little while. It gives you some take note kind of things. So let's see here. I want it to be for the what programs would you like to register your child for? I'm going to say that I want it to be able to eliminate some choices. It's working on creating it. Hopefully it doesn't take too long. And then I'm going to go to the choice options here and say that for Lego Club, the limit is 50 kids. For Story Club, the limit is 40 kids. For Chess Club, it's 100. For Maker Club, it's 15. And for Pokemon, it's 50. And so now as people start filling out the form, when Maker Club, when 15 different people have checked Maker Club as a choice, then it's going to get eliminated as one of the choices. So you don't have to keep monitoring it. It's going to do the work for you. So that's kind of a neat feature. I'm just going to close that down and close that add-on down. And there's lots of other add-ons out there. So if you think, well, maybe Google Forms can't do this. Well, maybe not the Google Forms just as is, but there might be an add-on that you can add to Google Forms that can make it do what you want it to do. Well, they just don't have it. They might have an add-on out there.  And I actually did set this one up as a quiz because you can see this first question is worth 25 points. The next one is worth 25 points and so on. So what types of forms can you make? Quizzes, surveys, polls, registrations are all of the above. Krista, what do you think? Is it all of the above? I'm here. Okay, let's see here. Whatever you want with it, go crazy. Okay, and then, oh, I didn't talk about this. Yikes, I'm glad this is a question. Are the number of questions or responses limited on Google Forms? The actual answer, do you want to take a guess? I'm hoping no. That is correct. One of the things that I've had trouble with with some other online poll and survey types of things, like SurveyMonkey, if I don't want to buy a SurveyMonkey subscription or whatever. Yeah, we've had that same issue. You're limited to like 100 choices or 100 responses. And so Google does not have any limit on number of responses. So if you think that you're going to be getting 500 responses to your survey, hey, Google Forms can handle it.  They're not going to make you pay for an upgrade to be able to accept that many. It just will let you do as many as you want. All right, can you add your own images to Google Forms? Here's an example of a dropdown. And we saw that, yes, we can. And then when we were looking at those icons, which is the icon to preview your form? Is it the paint palette, the eyeball, or the gear? I go for the eyeball. All right, now we're going to submit it, and now it's going to grade us. Let's view our score. Yes, Google Forms can do all this then more. We got the first question, right? Well, you can see it though. We did get 100 out of 100 points. Yes, hooray, no more being limited to 10 questions and 100 responses. Google Forms does have no limit. And yes, you can add your own images. And yes, the eyeball is the preview. That's it. Does anybody have any questions about Google Forms? Yeah, go ahead. We did have one that was typed in early, but if anyone else does have any questions, please do go ahead and type them into your GoToWebinar interface, and we will grab them as you type them in. Someone wanted to know about Google that we've never investigated a library Google account. Is it free for an organization? The Google accounts, basically how it works is when you sign up for a Google account, you enter in an email address. And so we entered in our basically overarching email address, which is our info at sewardlibrary.org email address. And so it acts as if it's any other Google account, and so it didn't cost us anything. But you could also enter in, you know, your personal work email address. It doesn't have to be a staff one. But yeah, it doesn't cost anything. Yeah, that's what's great about it actually for us, is that you can use, which is interesting, you can use any email address. I've got it, we use our state email addresses, which are at Nebraska.gov, but that becomes the email address for whatever Google account you've created. So they're pretty open, yeah, and it's free. Yes, there's no, it's not like because I'm, you know, rather than being an individual with a Gmail account like all of this I have, and being an organization, they do not care. No, you have anything to address? Yeah, go ahead and set something up and go to town and use it. Yeah, and the people who used the forms, like if you put a registration out there, they're not ever going to see that that form is under, you know, Joe Johnson at whatever.com. They're not going to see that.  Right. It's not going to matter to you.  It goes into Google spreadsheets, Google Sheets, but... But if you wanted to download it into Excel, you could. Right, exactly. If you use Excel, that's what you want to use to share things with other people or to manipulate it. It's all exportable as that. Google is very compatible with all the Microsoft products, which is interesting, but hey, I'm happy that they are. Well, and also Google Drive where all of the stuff gets saved, all of the forms that you make and all of the spreadsheets where the responses go get saved in Google Drive. And any of those items in Google Drive, you can share with other people. So if you want to collaborate with other staff members and co-workers, you can choose to share it from yours to theirs, and then everyone has access to it, and they can all log in to their own individual Google Drive. Yeah, and you don't have to have a Google account to see some of those things, too. There's links you can share out, and I've done that as using, like I've had certain people or Nebraska Library Association-related things where they share to me as Christa.Porter at Nebraska.gov. And as long as they use that email address to say I want to share with this person with this email address, I can click on that, and it pops me into it no problem, whether or not I'm using my Google account or not. It's pretty slick, yes. Yeah, pretty nice. Does anybody else have any other questions about the Google forms? Want to see anything else done? I think making it a really good, very comprehensive showing of all the different things you can do in there. And it is, as you said, it's very similar to something. If you've used something like SurveyMonkey or those kind of form-creating sites, adding things and designing them is all pretty standard, but I think the key of Google is, as you said, it's free, it's easy, it's open to anyone to use. Yeah, no limits. And you can be so creative with it, yeah. Yes, yeah. Yeah, it's pretty diverse, and it's a robust program for being free. Mm-hmm, yeah. And as far as I know, Crosser Fingers will never charge for these kind of things. Google has other ways of making their money, so they don't need it for this. That's right. Someone did say thanks for the reminder about the add-ons. Yeah, yeah. Because, you know, there are some things that, you know, you might come across an instance of, oh, if only it could do this, well, there might be an add-on out there. Someone wants to say, can you provide a link to your library's website? Do you have any of these, like, live on your library's website right now? I think I might. Our library website is Seward, so S-E-W-A-R-D-E.  And one thing that I do know that we have out there right now that's using Google Forms is this link right at the top here of Tell Us Your Favorite Adult Fiction Author. And so if people click on that, it takes them to, ta-da, a Google Form. Just a very quick one question form of what is your adult fiction author favorite? So there's one. I'm trying to remember if we have any others built into our website currently. We do also incorporate other types of forms. Like if someone signs up for a storytime right now, it's just a built-in form on our website. We're not using a Google Form for this. We'll probably transfer over eventually. But right now, we're just using a built-in one. But for summer, we did use Google Forms for all of our summer registrations. Yeah, I can imagine that's pretty, yeah. Yeah, it was so nice to just have it all flow into the spreadsheet automatically and not have to manually input, you know, 100, 300 kids. Okay. I'm just checking to see. Anything else? All right. Just a little after 11 o'clock, which is perfect because we started a little after 10. In case anybody have any last-minute, desperate questions you want to ask of Megan before we do wrap up this morning, get it typed into your GoToWebinar question section. If not, you can contact her at the Super Memorial Library, of course. Doesn't look like anything is coming in. So if you might have taken time to type, no. All right. Well, that's fine. I think we'll wrap it up officially then for today. Thank you so much, Megan. I'm glad we got to get you on the show to share this with everyone. As I said, we've been using them here. Just like you, sometimes we use our own. Sometimes we use Google Forms for things. It's really easy and quick to use, and we like it a lot. I hope a lot more people get, you know, that to get interacting with your community. What's your favorite author? What should be our next book club pick, you know? Yeah. Well, thank you so much for having me. What are you meeting today, you know, that kind of thing. Yeah. Sorry. All right. So I'm going to pull back, present your control to my screen here. Whoops. Did I do it? Yes, I did. All right. So that will wrap it up for this morning's show. Thank you very much, Megan. You're welcome. Thanks for having me. Of course. And thank you, everyone, for attending. The show has been recorded, and I'll pop over here to our Encubus Live website, and we'll be posted sometime in the next few days. I'll send an email out to everyone who did attend this morning and who pre-registered. This is our main site with all of our upcoming shows, but right beneath them is a link to our archives where you can see our previous ones. Our previous session was ALA Book Club Central, but this is where we will have the same kind of thing, the link to recording. I'll put it in the link. Also, I did open it up here as you were showing us, the link to the Google Forms page that you had set up for today. So if you want to go on there and take a look at things, I'll include that as well. As you see, I was answering the questions here. Did I? Oh, I did submit it. Okay. Did I answer all correctly? I think I did. What? Oh, it clicked it wrong. I know I said, oh, all of the above, so something got selected wrong on that one, but so I'll have that included as well when I do send out the recording to you so you have access to all of that here in our archives. So that will wrap up for today's show. I hope you join us for next week on our topic is Letters About Literature. This is a program, Read, Be Inspired Right Back. This is a program the Library of Congress is doing for quite a few years. I'm not exactly how it's shot long, where young people, grades 4 through 12, can write to an actual author living or dead and tell them why they like them, how they affected their lives, what they read by them, and if they then get them submitted here. So we're going to have a presentation all about that. Mary Jo Ryan, who's our Communications Coordinator here at the Library Commission, and then Lorraine Riedzel and Christine Walsh from two libraries here in Nebraska who are involved with us promoting this program within Nebraska will be online. We'll be here with us to talk about that. So please do sign up for that show or any of our other upcoming shows. We have set up here. I've got November, almost fully booked. I'm working on December dates as well and to see things added to the schedule as regular, on a regular schedule basis. Also, Encompass Live is on Facebook. I've got our Facebook page located over here. If you click on the Facebook link from our main page, I post here updates to shows when they're starting. Here's a reminder today to log in for today's show. When our recordings are available, I post on here. Here's the one from last week. So if you are a big Facebook user, please do give us a like over there and you'll keep notified up to date on what we're doing here on the show. Other than that, that wraps it up for this morning. Thank you very much, everyone, for attending and we will see you next time on Encompass Live. Bye-bye.


The General Assembly of Action 8 Nigeria has kicked against the decision reached by the Kami community of the staff can state to launch troops in Nigeria and Thels Dey Aquinas directed the deployment of standby military troops to restore constitutional order in the Niger Republic. Again, the directive at the end of its second extraordinary meeting held in Abuja to address the political crisis. The General Assembly of Action 8 Nigeria condemns the coup in the Niger Republic. However, it is evident that the African Union Clear Review Mechanism needs improvement. Given the events in Niger, we strongly recommend that ECOWAS prioritise diplomacy and dialogue in its approach to the situation as military intervention could have severe repercussions for neighboring countries, particularly Nigeria, considering Nigeria's role as a buffer between Nigeria and the Sahel region. It is imperative to ensure stability, respect for democratic principles in the region, and we call upon ECOWAS to use its influence wisely to achieve this. Considering the ongoing economic crisis, it is imperative for both the federal and state governments to prioritise the establishment of credible and sustainable social welfare programmes that extend beyond providing monthly disbursement of funds for short-term relief. This programme should be designed to specifically target vulnerable populations, including low-income families, women, youths and persons with disabilities. Hello, hope you enjoyed the news. Please do subscribe to our YouTube channel and don't forget to hit the notification button so you get notified about fresh news updates.


The Modern Language Association's style for citations is most commonly used to cite sources within the liberal arts and humanities. So a lot of instructors in English, literature and art classes will ask you to create MLA citations. You'll want to be sure to cite any facts or ideas in your paper that you didn't think of yourself, unless they're common knowledge. Common knowledge includes things that you could expect most people reading your paper to know, something they could just accept as true without having to look it up. To cite a source, you'll create an in-text citation and a bibliographic entry. The in-text citation is right in your paper and tells the reader which person you got your fact or idea from. If you're copying someone's exact words, you'll put their words in quotation marks. If there's extra information that would help the reader find the fact, idea or quote, like a page number, then add that in parentheses right after the fact or idea. You can either give the author's name right in your paper or add it to the note in parentheses. The bibliographic entry is on an extra page at the end of the paper. This page is called the works cited page and it's an alphabetical list of every source you got your facts, ideas and quotes from for your paper. The works cited page is formatted with a hanging indent. The bibliographic entries give the reader all the information they would need to find your sources in a library or on the web if they wanted to look them up and read them. For each bibliographic entry, there are nine core elements that a reader would probably need in order to find the source you used. You'll want to include as many of these core elements that apply to your source. You'll find you won't need to use all nine core elements for every source. For example, look at this song from Beyonce that the writer found on Beyonce's webpage. In most cases, other contributors version and number don't apply to the source. But wait, what if your paper was all about songwriters and you talked about this song's writers at great length in your paper? Well, in that case, the type of person looking up and reading your paper must be really interested in songwriters. So you would want to list the songwriter in the other contributor spot. Or wait, what if you listened to a version of the song that the reader wouldn't expect? Maybe an obscure remix. Well then, you'd want to let the reader know the version. Or what if you listened to the song on a CD? Then the number of the song would help someone find it on the CD, so you'd include the number. You might even find that for a few different sources, you'd need to include some elements that aren't on this list. The bottom line is that you need to think about your source and the reader and use your best judgment. When you're just starting out, you'll need to look at a lot of examples to get the hang of it. If you visit the library's webpage, you'll see that we have a handout for MLA citations that gives a lot of examples. We also have a service called Noodle Tools that guides you through creating citations and your work cited page step by step. Remember, if you have any questions about citations, contact a librarian.


Hey everyone, Sheba1000 here. Today we're going to be reviewing this old Vivitar Vivicam 46. This thing is old. I've had it for several years. I've had it out here we're doing a yard sale today and I've had it out here in yard sales and I thought it's been it's been open but it's been taped back together so let's do a review on it. It's not going to sell by now just put it up in with my camera collection I can't I got this in a bunch of stuff I think a couple years ago and it's just never sold so in the plastic wasn't yellowed like that you know so alright guys let's open this up and let's check it out. Okay guys so like I was saying this Vivitar Vivicam 46 it's got a copyright date or whatever I wanted 2012 I was reading some reviews on this thing and I think the newest review I read was 2016 the other ones was 2012 and 2013 of course you know they were $20 when they were new I forgot to get an SD card sorry about the background noise but I got the tractor back there running at the back of our property because a stupid neighbor's playing his music again every day starts 6 37 o'clock in the morning we're sitting out front it's ridiculous so it's time to uncap the headers on the vat and take it around there I'm not kidding you and then well you want to play a game of noise but anyway so minimum system requirements Windows XP SP3 Vista SP1 over Windows 7 Intel processor based Mac with Mac OS X 10.5 or higher uses two double-a batteries not included alkaline recommended I don't have any alkaline we're just going to try this out for fun I'll probably throw it up on the shelf with my other cameras yes it was a piece of crap then I'm sure it's gonna be a piece of crap now resolution 2304 by 1720 28 4.1 megapixels holy crap it's supposed to have software in here but I doubt if it's in here but we'll see if I got a knife up here somewhere I am dwindling down on my stock so I'm gonna have to restock soon open this up here it does take a memory card I don't know what size probably a two probably no more than an eight yes feels like it's got the okay it does it's got the imaging software in it and of course the USB thing and here's the camera itself I'm glad I didn't sell that this ain't gonna work no no it's gotten too hot it's melted I'm sitting in the sun that's why I tried to tell her don't set this kind of stuff in the Sun but oh this is melted bad this should be interesting glad I didn't sell this thing I don't even know how you put the batteries in I don't know how to open it to put the batteries in it I got some software anyway easy guide read me first okay so this is kind of for fun please do not return to store if you have bull crap see whenever something says that and I have a problem with it I will take it back to the store because I didn't buy it from the company I bought it from that store they bought it from the company they can send it back let's see where do we put the batteries in there's the SD card this is nice let's have a little door right here according to this thing I don't it's supposed to slide off I don't know but it's melted I mean very very melted this is probably going to garbage can okay well I'm going to try to figure out because it says 46 this is the 46 says supposed to have right there in front but it doesn't for a camera a Vivi cam 46 the polarity of the batteries from left to right should be inserted as positive and the negative install front cover remove front cover okay so it's telling me to slide this somehow and of course it's not going to slide because it's like this is melted melted there we go I just yanked it open alright there it is let's just see if it'll power up I got a couple cheap batteries in here dollar general oh the batteries batteries ain't even going to fit so here we go there's one all right now how do we turn it on here that upside down upside down okay here's the power button oh I seen a light I seen a light come on nothing's happening now the light won't come on so you know the batteries might not be that great let me go get some more batteries seeing supposedly it's supposed to take like video clips of course there's no mic in it so you won't have sound and okay now it's not doing anything so all right let me try some more batteries so guys sit tight guys okay guys so I just had this thing kicked on it's on it's actually on I don't know if you can see that all right so since it does come on I was just in the house I need to get trying to get it good to go to okay I'm on menu here so I'm gonna go in the house and get a memory card and let's see what this thing does okay guys I found an old 8 8 gig card I don't even know if it's any good but it seems like it's taking pictures it took one picture okay let me see if I come up with something different then I'm gonna take some pictures and see now it's saying memory card full it's supposed to have an internal memory of one picture so let me try another card let me see what's going on here and then I'll take some pictures if I can and we'll put them on here and see what's happening okay guys so I did get it to work I took several pictures and a video clip I'm gonna throw them in right now and we'll see what we'll see what they look like I'm not expecting too much guys by the way the video clip does not it doesn't have a mic so it has no audio so this should be interesting so let's throw them up on the screen and check it out okay guys so the wind has picked up so the camera as you can see wasn't as bad as everybody was saying it was but you know I mean for 2012 standards I think it was acceptable other than like I say you know that the video clip is shaky now these are all unedited that you saw but I'm shaky anyway you know but if you had it on a tripod just take a video clip of something you can overdub it you can put music to it whatever you still buy these things a lot of them are new old stock they're one like 18 bucks for that hard time selling as you see I had this one for $3 and it never sold but even though it's melted and I mean it's just all warped up and I'm going to throw it up on my on my shelf I mean I think it's pretty cool that I mean this thing is melted so bad I don't know if the camera's picking that up but it's and it still works so I'm pretty impressed with that I am going to try to put this imaging software on my computer see if it'll take it I'm running Windows 10 I didn't go to 11 I'm not going to I'm staying on 10 there's been a lot of problems with Windows 11 keeps asking me you want upgrade no no I'm not I just want to stay where I'm at but yeah this is I'm gonna see if my computer will take that just for fun but I mean you saw that's all unedited I didn't retouch anything on it so yeah but the date came back is January 2012 because you know I didn't set the date on that thing I don't even know if you can I'm sure you can but I didn't set the date on it so it came back as one something 12 January something 2012 so it's a 2012 camera for sure yeah I'm gonna put that up on my up on my shelf with my other ones because it's just kind of cool that I've had it all these years and and just never opened up when I did it was melted and it still works and it works better than a lot of the reviews I saw you know talking about you know the pixelation and all that I'm pretty impressed with you know because 2012 I mean you had 1080p in 2012 which yeah of course would have made that look like crap and a lot of people was comparing it to to the 1080p oh it's nothing like my 1080p I but you know I knew it was going it wasn't going to be as good but I didn't think was this junkie well when you're comparing it to that I mean you know video quality on that's probably what 720 maybe even less than that monkey shaking her head she has no idea what that means do you now she's shaking her head no at least she's honest what year was the war of 1812 thank you you learned that didn't you yeah you guys saw that one right all right guys there you go I am actually I'll probably never use it maybe once in a while get it out and just take some pictures but just for fun because you know I like getting my old cameras out and stuff but ever so often yeah I mean I'm giving it a two thumbs up if it was 2012 I'd be kind of happy with it as far as they still image camera goes you know yeah I would have been perfectly happy with it just unedited and you know you can in fact I'm going to edit these photos the last after this clip I'll do the same photos again and video edited and we'll just see what it looks like so that being said I'm gonna say she barely met the man alleged I'm gone for now mug she's gonna have a couple videos coming up huh you got a mug in there yeah and yeah what's the other way all right we won't say anything we'll keep them in suspense stay tuned it's pretty cool thanks for watching guys and we'll see you in the next one Monk down bye bye guys