Breaking Through The (Google) Glass Ceiling by Christopher Bartholomew
Skills:
Backend Performance60%
Key Takeaways
Builds Google Glass apps using Mirror API, Glass Developer Kit, and Immersion design patterns
Full Transcript
[Music] all right good afternoon thank you for coming to the Google Glass breaking through the glass ceiling session or seminar uh this specific seminar isn't really based upon like coding examples it's essentially when I taught this uh same or when I mentored students for CS5 last year on Google glass projects it wasn't the coding that really really affected them it was the well how do I take all these tools that Google has given me and use them to build a specific application we're going to go over a couple things and we're going to go over design patterns we're going to go over applications we're going to go over um exactly how to take all the knowledge that Google's going to give to you because Google is extraordinary in sense of giving you all the samples you need uh they're going to give you all the documentation you need to implement it but we're going to use that knowledge that they've given you to create glassware Glass applications so let's get started here so a couple things that you should just keep in the back of your head whenever you're doing uh Google Glass uh applications because one of the things about Google Glass in itself is that it's really contro it's like a controversial app um piece of technology that not many folks actually uh use so in the back of your head you should always think about you know the ultimate success of any wearable technology depends on the applications that are available for it if there's no good applications for a specific device then it's worthless another thing is as glass developers the challenge is to create apps that are more convenient and Innovative than our own mobile device apps and this doesn't actually mean that you have to create a whole brand new application I mean for example I can just simply go okay glass take a picture share with then I can just say share okay glass share and I can share it to my circles just like that on go+ or something it's a lot quicker than me going out here taking a picture and then essentially doing the same thing so it makes it more convenient it's an Innovative way to do things a little bit more quicker now another way to think about a Google Glass application or any type of wearable technology app is that if you completely wiped your mobile device what would be the first five applications that you would actually download and why okay so just keep those in the back of your head when you're in when you're going to start designing uh a Google Glass application so what's the agenda the first thing we're going to do is we're going to basically say what is glass uh we're going to talk about about the glass timeline basically the thing that moves across the screen at uh when you use the controller along the side we're going to talk about design patterns for the glassware we're going to talk about mirr API versus the glass developer kit um I'll throw that around a lot essentially because the mirror API was the original application programmable interface that was released by Google that's cloud-based whereas uh the GDK the glass development kit was released later uh down the road essentially so that you actually use the hardware capabilities in Google Glass we'll go over some professional tips and also um essentially some resources so instead of explaining exactly what is glass overall I'm just going to use the one minute video that Google has provided to kind of go over it because I think that's essentially the best way to do it for um without me giving glass to every single person here here are the basics of how to use glass this is your touchpad it runs from your temple to your ear tap the touchpad to wake up glass you should see the display above your line of sight adjust it to see everything the home screen shows a clock this is your timeline it's a row of cards things to the left are happening now are coming up like the weather an upcoming flight or an event in your calendar you can tap on any card to see more swipe down anywhere to go back to the timeline cards to the right of the home screen are from the past for example messages videos or photos tap on a photo to share it and choose one of your friends swipe down to go back to standby and have fun exploring okay so that's the generic user interface for Google Glass um essentially hello uh essentially it's a very simple timeline focused uh UI that allows the user to use not only voice commands but also this bar along the right hand side to swipe through really quickly through different uh specific dimensions of uh the different glass timeline time cards uh so what's on glass well the display is 640x 360 the camera in itself is a 5 megapixel camera that does 720p video recording it has Wi-Fi and Bluetooth on it but it does not have cellular so in order to uh use glass outside of a Wi-Fi network you'll have to essentially link it to your phone using a hotspot uh the storage is about 12 GB and that's not including the operating system it's 16 total uh essentially it has 2 GB 2 gabt of RAM and there are some additional great pieces of technology that are built in you have a gyroscope you have an accelerometer you have um an ambient light sensing and proximity sensor which is used for like blinking for example if I blink it will take a picture which is kind of strange but it's one of those pieces that you can leverage uh inside of the SDK and also you also have a bone conduct bone conduction audio transducer so that allows me to really kind of whisper okay class and then it will um access to my commands so that overall is what Google Glass is so let's get more into the like the nitty grip of what these time cards are and what exactly um and how we can use them to do different things so there are three types of timeline cards there's the static card which displays text HTML images and video you can also uh you these things can also be used to invoke these things called a Live card or immersions and we'll talk about that um in a little bit a Live card displays cards that are important at the current moment stuff that's rendered essentially uh stopwatch is a good example for this and an immersion displays what we call an Android activity that basically takes over the entire screen so the idea here is you're able to make a lot of good clean crisp Dynamic applications uh whether it's just a simple HTML uh CSS template uh whether it's something that's going on and active this is a an image of the a game called Zombies Run which is actually pretty fun we'll look at that and this is a game here that uses uh the gyroscope um or I keep seeing gy yeah it is gyroscope what am I doing the gyroscope so that you can actually uh balance things on your head so so let's go more into timeline cards static cards can also contain a bundle of cards for example a photo album you could see that denoted by this little page flap right here when you tap into it you're given another line of timeline cards and there you'll be able to kind of scroll through using your scroll bar and you'll also be able to share specific cards okay so now that you should be somewhat familiar with the different types of timeline cards uh what we're going to do is we're going to talk about the design patterns and this is probably the thing that most students get caught up with when they start diving into Google Glass development so there are three design patterns the first design pattern is periodic notifications and what that does is it uses the mere API web services or Android background services to push notifications onto a timeline for example if uh you sign up for cnn.com app they would send you a notification when there's like a news event that had occurred the mirror API can be used to create any Lang um the mirror API can use any language to create a web service interaction so essentially like if uh you are not very familiar with Java which is the what the GDK uses and you're more interested in you know PHP for example you can write a PHP service and a glassware application that interacts with that as opposed to having to dive deeper into the um Java parts of it uh the Android background Services uses Java per the glass development kit so what we'll do is we'll switch over to just an example on the glass if we could sorry for the screen it's tilted to the side here for the people who are inside there we go sorry about that take a little bit to load here okay so this is an example of something that New York Times would send uh it's a p notification that contains multiple static cards that has information about it so if I click into it and this will load let's go there we go I click into it then what you'll get here is you'll get um information about like a headline or a story you can also attach things to it so that you can actually read aloud and what read aloud does is it will read it to you in your ear you can't really hear it but essentially it's a bone connector that will read in your head guess it's the best way to put it so that's what kind of periodic notifications are about there's all different types of them um if you use Twitter Twitter is another app that kind of gives you an example of what these periodic notes ification apps are all right the second design pattern and we'll go ahead and go back to the thing so the the second design pattern is the ongoing task and essentially this is a card that's constantly running in the background you can leave the card you can go do something else on the timeline uh but essentially what was happening is that the it's always running something's always going on like a real application like a stopwatch for example uh this can only be implemented using the glass developer kit but you can take full advantage of all of the glass hardware uh the Android GDK is Java only so if you're familiar with Java that's great if you're familiar with Android development specifically there's a great uh seminar I believe I'm not sure what the exact time is but there's a seminar on Android development if you're planning to do the GDK I recommend going to that one specifically because it's going to overlap exactly what you're going to use for glass okay um so let's see let's open up another app can we switch over to the thing okay class um start a run so this is a game that uh I use when I'm bored when I go running called uh uh like Zombies Run and essentially what it does is it tracks it it's essentially you're running from zombies the entire time but if like if I run I know this is going to be really awkward but if I run around here it should track or give me a pace it should update like how far I've ran or things such as that so this is like a this app is essentially it's taking a second to update on that side annoying but ESS essentially what's going on here is that this is always running and you're interacting with it and you can just kind of do different things and so there are many apps that are like that and there's apps that you can actually create that do the same thing so that's it all righty okay all right so the next design pattern is an immersion immersions will consume the entire screen and the entire timeline so you actually can't just jump out and go do other things if you want to it'll it's like as if you're playing a game on glass in itself uh this can only be implemented using also the GDK so you know once again the advantages of using the GDK is you have full of um you basically take a full advantage of all the hardware that's on Google Glass in itself so we're going to go up to one more uh example on the glass okay glass play a game of balance so this is a game I like to play when I'm bored at work just in a meeting hopefully it'll show up here any second now there we go all right so what it is is I'm balancing I'm using the josp to balance these objects on my head things like that so this is kind of an immersion application Level 's like impossible but okay glass there's also interactive games that you can do like not record a video all right okay stop recording why are you recording sorry glass is acting up okay glass there you go okay glass play a game of clay shooter so this is another one of those weird interactive games that you can mess around with this uses like a lot of components inside of Google Glass fire fire I'm horrible at this game and essentially you can just use your word the word fire to actually go out and fire fire uh it's never going to happen I'm G to M it every time but uh it kind of gives you more of an example of using all the different components to make these Glass games okay so the next thing that you want to think about here is invocation methods a fancy term for how do I start my application so there are different ways to leverage different uh invocation methods different design patterns for example the periodic notifications don't those won't use like the okay glass menu so if you wanted to do something that had and sent notification say you have an application that reminds you about something that's happened uh you're not going to be able to bring that up using the glass menu this is only something that you'll be able to do through the glass GDK in itself all right so I've been using these two terms mirr API and glass GDK and so I'm just going to go into those a little bit more deeper so before the GDK mirror was used primarily as the application interaction uh it uses backend web services to accomplish simple tasks such as timeline subscriptions content sharing and voice texts glassware using the mirror API can be written in almost any language glassware that only uses mirror API will not have the ability to use voice invocation methods nor the hardware goodies such as the gyroscope and accelerometer uh you can create glassware without a physical device in hand so that is a nice thing so if you need to just create glassware that doesn't really that you don't really need the actual device you can do that especially if it's hard to get an actual Google Glass or if you don't have one or something of the sort uh requires knowledge of ooth 2 and what o Open authentication is is if you ever gone to a websit say sign in with your Facebook or sign in with your Google account things like that that's open off and that is essentially going to be used because the mirror API is a cloud service as for the GDK the glass developer kit is in essence an extension to Android development it can only be used with Java developers have full access though to all the native Hardware features including the Gyros script and the accelerometer it's primarily used for voice invocation abilities as you um saw okay glass that whole menu thing uh Live cards and immersive applications this does require that you have the device in hand because you always have to be constantly loading the code up to your um to your glass to test with so GDK versus mirror the pros are the it's straightforward for Android developers beginner or professional you got the ability to use all the native Hardware it opens the door for interactive glassware offline functionality where you don't need the Internet and lots of documentation so it's well documented the cons is that it's only available in one language Java um and the integrated development setup can take actually a pretty long time to do when I say long time I me mean like maybe a couple hours to get it all configured um there's things like you have there are a lot of things too you'll have to consider like uh battery life and memory usage I mean I was at 100% uh when I started this presentation and I'm dropped 20% already so depending on the apps that you use and depending on what your app actually does you want to think about okay what can I do with most minimal battery life consumption so those are the important things when you start using all those goodies terms of the mirror API you can you you can pretty much use almost any language that has like a web framework you can't use C but for example you can use PHP Java python uh Ruby go or other different languages you know and it the cool thing is it just uses like straightforward web architecture uh you make a post request it inserts a card you make a get request it gets cards the cons is that you do need the oo 2 knowledge I.E to sign in with your Google account and that could be sometimes confusing for folks um I believe that when these seminars are posted that the not only the slides but some other materials are attached to it is that correct and I have a big PDF like a nine-page PDF on how to set all that up for people and it gives you an idea of like like a database structure to hold you know the the keys and the tokens so uh I'll hopefully be able to um shed some light on the ooth um with go going into that document a little bit further one of the things that is a big con is that there's no offline functionality you do need internet access if you can't decide don't worry you can use both um for example let's say you create a game using the immersion the immersion via the GDK you could also create a leaderboard that's in the cloud using the mirr API you can send your score to the your leaderboard web service so it can be displayed so you essentially want to use what's best for your application type you not necessarily um you know you don't have to go to one side or the other it's just that there one's going to be if you're going to use both uh you might have a need for that and it is a lot of work but it's definitely worth it if you can get it through okay so I'll give you a quick example of the mirror API and its capabilities so for example one of the things that this is the last starter project that comes with Google um the Google samples it basically lays out everything that you can do with at least the mere API uh some of the stuff that I had shown you earlier as well for example the game the balance game and those those are actually sample code that Google provides you so you see the the Google has done a lot of the work for you you just need to basically figure out exactly how to put your application together to better utilize uh those tools and those things that they've given you uh this is the sample for the timeline but what we can do here is the code behind on this is you can see exactly how they inserted a message into a timeline or insert a picture um insert a card with page HTML subscriptions a subscription is something that you subscribe to for example I subscribe to the New York Times and so they send my glass my specific glass glass updates periodically that's what really the mirror API is and uh on the glass developer website they have all this here for you so that you can basically leverage this so one of the other things that I wish I had when I was developing Glass applications before and also my students last year is this cool thing and it's called the glasswar flow designer and the glassw flow designer is basically a way for you to build a Google Glass applic so that you can actually see what's going on so I built this kind of temporary Google Glass application here uh okay glass and then it will then I want it to do something launch a cs50 app and then it'll say welcome to my cs50 app and then I can tap as you can see here for more options and one I can get do either do an automatic A+ or I can write my P set for me so there's different things you know if you use the write my P set option it says you know warning not recommended don't want glass to write your peep set for you but essentially this is a nice um tool that a lot of people have missed and it would be great if you can help lay out your application in one of these items and the cool thing too is that there's this design review button and what this design review button does essentially is it allows the actual Google Glass team to review your app and give you comments on it beforehand so a lot of cool features uh that the glass team has done in order to build it to make it as easy as possible for you to actually write Google Glass applications yeah is this the only design or can you then translate this does this automatically translate into code that you can use or so the question was that is this only for design and does it translate into the actual code for you no it doesn't but it what it does is it does a giant whiteboard in tons of white you know pieces of paper like you know so you know exactly when to apply a specific uh card you know apply what kind of when you're writing your program oh I want this specific card to actually um launch something else and so it lays it out very nicely and if you're planning to do a Google Glass application and you do one of these I would submit one of these as your pre-proposal and I'm sure you know TF will be really happy about that because they'll be like oh this is what your application does I know what I'm expecting from it because sometimes it's really hard to keep track of what's going on in a glass app okay let's see let's go back to this another cool thing is the utilize of the glassware playground to review and create content that is displaying on your application so what that is is a tool where you can actually design you know how things look so for example if I want to make waiting for it to load here if I want to make a specific template I can do that here using this essentially uh tool that they've given us to really customize how your actual cards are going to to look uh hello this is great thanks Google so you can actually see how your cards are going to look when you start building them and when you start sending them over to Google Glass the next thing is this PDF handout that I've created in order if you were going to do notification servic is appear act notifications or um work with the mirror API as opposed to the GDK and let me get that out for you taking a bit to load here sorry supp be already open there we go okay so for example if you want to set up using the mirror API I have full deal instructions on how to do that um how you access the Go's API console with what account um how to create a specific enabling the mirror API working with open authentication and also how to use the playground that we've just uh specifically looked at so good information here that will come with the actual uh slide deck otherwise you can also do other things here and specifically there's the uh the database structure that I've created or that I've done for you that you can look at to see how to build a open authentication table for users so something to also understand and keep track of especially if you're going to be working with the Mir API okay oops there you are okay so a ton of resources if what I recommend doing is going to developers.google.com Glass and read because there's a lot of information there far too much to go over the entire uh seminar but there's a lot of information that's a lot of good information that kind of expands more on this especially on the code side of things I've also added a quick start guide for the GDK so that if you needed to kind of jump into it you have the ability to do that as well I've added there's video right here Android tutorials there's a YouTube video that's included that if you want to start developing using the Android operating system if you're a beginner um that video will really help you do that again uh the Glass applications that are using the GDK are literally just Android applications they can Port back and forth uh finally I've added a Google style guide for J Java if there's anything specifically how do I do a you know what's the best way to do a for Loop in terms of like Google that style guide will help you do those things and that's it so I hope you guys have enough information to kind of go forward with jumping into a Google Glass application but definitely visit the resources definitely um dive into the different types of applications uh that are available especially the sample applications look at some of the code that they provide you and honestly uh with your experience in cs50 it should not be a difficult thing to break into and get in okay thank you
Original Description
Do you have an interest in creating apps for the most controversial piece of wearable technology today? The rise and success of any wearable technology depends on one major element: apps. In this seminar, we’ll overview Google Glass’s three application design patterns: Periodic Notifications using Glass’s Mirror API, Immersion using the Glass Developer Kit (GDK), and Ongoing Tasks which utilize both the Mirror API and GDK. We’ll also provide helpful resources on interacting with and implementing REST web services, creating database structures for Google’s Open Authorization (OAuth), and setting up a standard Integrated Development Environment (IDE) for your chosen design pattern. If you’re planning on creating a Google Glass application, then this seminar will help you get started.
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from CS50 · CS50 · 12 of 60
1
2
3
4
5
6
7
8
9
10
11
▶
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Hello, World: Hadi Partovi
CS50
Content Distribution and Archival in a Digital Age
CS50
CS50 2014 - Week 1
CS50
CS50 2014 - Week 3
CS50
CS50 2014 - Week 0, continued
CS50
CS50 2014 - Week 4
CS50
Week 3, continued
CS50
Quiz 0 Review
CS50
CS50 2014 - Week 3, continued
CS50
CS50 2014 - Week 7
CS50
CS50 2014 - Week 7, continued
CS50
Breaking Through The (Google) Glass Ceiling by Christopher Bartholomew
CS50
Introduction to Amazon Web Services by Leo Zhadanovsky
CS50
CS50 2014 - Week 9
CS50
How to Build Innovative Technologies by Abby Fichtner
CS50
Light Your World (with Hue Bulbs) by Dan Bradley
CS50
Building Dynamic Web Apps with Laravel by Eric Ouyang
CS50
CS50 2014 - CS50 Lecture by Steve Ballmer
CS50
CS50 2014 - Week 10
CS50
This is CS50 with Steve Ballmer?
CS50
Meteor: a better way to build apps by Roger Zurawicki
CS50
Data Analysis in R by Dustin Tran
CS50
Data Visualization and D3 by David Chouinard
CS50
CS50 2014 - Week 6
CS50
Build Tomorrow's Library by Jeffrey Licht
CS50
CS50 2014 - Week 9, continued
CS50
Essential Scale-Out Computing by James Cuff
CS50
iOS App Development with Swift by Dan Armendariz
CS50
Sam Clark Leads Yale Students on Tour to CS50 at Harvard
CS50
3D Modeling and Manufacture by Ansel Duff
CS50
CS50 2014 - Week 5, continued
CS50
hello, world
CS50
CS50 2014 - Deep Thoughts - Hash Table
CS50
CS50 2014 - Deep Thoughts - Binary Tree
CS50
CS50 2014 - Deep Thoughts - Scratch
CS50
CS50 2014 - Deep Thoughts - MySQL
CS50
LaunchCode Visits CS50
CS50
CS50 Live, Episode 100
CS50
CS50 Field Trip to Google
CS50
This is CS50 AP
CS50
Week 4: Monday - CS50 2011 - Harvard University
CS50
Week 2: Wednesday - CS50 2011 - Harvard University
CS50
Week 1: Wednesday - CS50 2011 - Harvard University
CS50
Week 11: Monday - CS50 2011 - Harvard University
CS50
Week 3: Wednesday - CS50 2011 - Harvard University
CS50
Week 12: Monday - CS50 2011 - Harvard University
CS50
Week 1: Friday - CS50 2011 - Harvard University
CS50
Week 3: Monday - CS50 2011 - Harvard University
CS50
Week 10: Wednesday - CS50 2011 - Harvard University
CS50
Week 2: Monday - CS50 2011 - Harvard University
CS50
Week 9: Monday - CS50 2011 - Harvard University
CS50
Week 7: Monday - CS50 2011 - Harvard University
CS50
Week 5: Monday - CS50 2011 - Harvard University
CS50
Week 5: Wednesday - CS50 2011 - Harvard University
CS50
Week 7: Wednesday - CS50 2011 - Harvard University
CS50
Week 8: Monday - CS50 2011 - Harvard University
CS50
Week 9: Wednesday - CS50 2011 - Harvard University
CS50
Week 8: Wednesday - CS50 2011 - Harvard University
CS50
Week 10: Monday - CS50 2011 - Harvard University
CS50
Week 2: Wednesday - CS50 2010 - Harvard University
CS50
More on: Backend Performance
View skill →Related Reads
📰
📰
📰
📰
PDF Tamper Detection API for Laravel and PHP: Integration Guide
Dev.to · Iurii Rogulia
How I Built a Concurrency-Safe Reservation System
Dev.to · Rahul Chaduvula
The Object in Your Field Is Not the Object You Wrote
Medium · Programming
I built an offline CLI that audits a legacy PHP app in one command — and shows you the fix
Dev.to · getobserver
🎓
Tutor Explanation
DeepCamp AI