All posts tagged google

Screenshot from 2014-03-27 14:23:55

Recently we started dumping some data from the database into a shared spreadsheet on Google Docs.  With all of this data it would be helpful to visualize it in some way.  After searching the net it seems there isn’t really a good way to create a chart that is dynamic with what data is in the spreadsheet.  What I want is to have my graph update every time a new row is added to the sheet without having to edit the graph directly.  The solution was to write a custom Google Apps Script to do just that.

To add a Google Apps Script to a document open the document and click Tools -> Script editor…  This opens up a page for editing scripts.  If a prompt appears for what type of script you want to do just select Blank.  Now you just need to paste in this code below.

To make this work for you just change the tabName variable to whatever your tab is that you want to use the graph in, change the start row and start column of where your data begins and what column to end reading.  You don’t need to specify an endRow because we will just be reading all of the data until there is no more.  After that you can customize where the graph will be located, how wide it is, and the titles of the axis.

You’ll see that this method will get called anytime the document is edited or opened by someone who can edit.  Viewers who cannot edit will not trigger the event even on open.  That’s all there is to it.  dynamic Google spreadsheet graphs are now just a click away and once you have it set up you’ll never have to touch it again.

If you have any other Google Apps Scripts tips leave them below in the comments.


Google has worked really hard at making their Google Apps for Business to be something great that all businesses can use. They say that over five million companies are using Google Apps for their business and the company I work at is one of them. In order for Google to compete with the powerhouse that is Microsoft Office Suite they need to have some pretty great things, and they do. I’ve already done a post about Hangouts which works well as a chat client and awesome for video conferencing. Today I’m going to show off Google Calendar and how to use it to its fullest in a business setting as well as a few tips for making Google Calendar your personal online calendar of choice.

A lot of basic features you can find with any calendar program are already present including multiple calendar support, calendar sharing, and permissions.  Let’s quickly run through how to create a new calendar and share it with your company.

Create a New Calendar

new calendar

  • From the main calendar view, on the left side of the screen it says My calendars, click the arrow to the right of that.
  • Click Create new calendar
  • Fill in the calendar name
  • Fill in a description
  • Set time zone and location (This isn’t necessary but we have offices all over the world and it helps to distinguish where these meetings pertain to)
  • Set sharing to your organization
  • Add specific people to be able to make changes and add to the calendar
  • Click Create Calendar

You’ve just made a new calendar!  You can change the color of the events by clicking the drop down arrow to the right of the calendar’s name and clicking one of the colors.  Now that we have a calendar we should create a meeting and invite people.  Click Create at the top left to get started.

Create an Event


  • Click Create at the top left of the calendar view.
  • Title your event.
  • Set the start date and time and end date and time.
    • Setting the time zone will ensure that the time is converted to whatever timezone the guests are using.  For example, when our China office sets up a meeting they can set the timezone to China and invite me.  On my calendar I see it in my local timezone.  This helps with not having to do the timezone conversion on your own.  Use this!
  • Select if this event is all day and if it repeats, if it doesn’t just move on.
  • Fill in where the event is happening, if you use an address Google Maps can give the guests directions, if you are just doing something that everyone invited knows you can use a common name like Conference Room A.
  • If this is going to be a video call click add video call.  This creates a link to a Google Hangout that everyone invited can quickly jump into when the meeting begins.  The link is both on the calendar event and in any event emails.  This takes all of the confusion about joining a conference call out of the equation and just requires guests to click the link and join.
  • Select the calendar you want this to be displayed on.  A note on this, if you set it to a shared calendar and invite people to the event it will show up on their calendar twice.  Once for the group calendar and once for their personal calendar because they were invited to the event.  For most meetings I leave this to my personal calendar and invite guests.  That way it shows up once on my calendar and on their calendar.  This obviously makes the meeting a bit more private.  If it is necessary that others should see that the meeting is happening change this to a shared calendar that others can see even if they aren’t invited.
  • Add an attachment if one is needed.
  • Set a color, if you’d like.
  • Set reminders, these are for you.
  • Set your status, again for you and others to see if you are free or busy.

At this point your event is nearly completed you just need to invite guests and schedule any equipment or facilities you’ll need.  Inviting guests is very important because it will allow them to accept or deny your meeting request.  You can also check if that times works for them and if you need to change the meeting.  If there are changes to the meeting Google Calendar will automatically email them with the changes.  This is a very critical part because if you don’t invite people how will they know there is a meeting?

  • At the right side of the event creation you can see an Add Guests | Rooms, etc.  Make sure Guests is highlighted
  • Type in the email address of the guest you’d like to add.
  • Either click their name or hit Add
  • The guest list will grow longer below.
  • If a guest is just optional you can click on the black portrait next to their name.  This will change it to white which indicates they are optional.
  • Click Rooms, etc.
  • Choose what rooms or equipment you need.  By default it only displays what is available at the time you have selected already.  If you need the full list then uncheck Show only available and select what you need.  This will help you find an available time if you really need the equipment or room.

Now that you have guests and possibly room and equipment let’s make sure everyone can attend.  Find where it says Find a time above the event details you filled in like description, etc.  This tool will show you when people are available and busy.  If there are any conflicts then just change the time that fits everyone’s schedule.

If everything looks correct then just click the red Save button at the top of the page and you’re all set.  Your guests will get an invitation and you will receive notifications of their responses.

Other Tips

When you receive emails with dates and times you can click these to quickly create a calendar event.  The benefit of this is that on the event there will be a link back to that email.  When you open up that event later and forget why that was created you can click the Source link to the email and remember.

In your settings you can select the times that you normally work and it will warn users if you are normally not in the office at that time.


This post was a little verbose and spelled out specifically how to use Google Calendar.  Don’t be afraid to play around with it and figure out how to best use it for you.  Organization and collaboration is key and finding times to get together can be difficult.  Google Calendar is a great solution for businesses and individuals to keep all of that together.  Let me know in the comments if you have any great tips for using Google Calendar in your life or business.

Recently Google said goodbye to their chat system Google Talk and replaced it with Google Hangouts.  If you aren’t currently on Google+, and I know that is a lot of people, you probably don’t know what Hangouts is.  Google Hangouts is Google’s voice/video/chat client and is very comparable to Skype and Apple’s Facetime.  This post will discuss some of those comparisons and why Hangouts should replace your current video/voice/chat client.

Universal Compatibility

Google Hangouts works on any computer or mobile device you have.  Whether you are chatting on your iPhone or sitting at your Windows PC you can talk and chat with anyone using Hangouts.  We’ve started using it in our office to replace our instant messaging client and it has been a dream.  Not only do you get messages while sitting at your machine but you can install the app on your mobile devices to get messages even when you are away from your desk.  Some people might not like this, you don’t need to install the app, but for walking around our campus it is nice to always stay connected.

Messaging Benefits


We explored other options for replacing our instant messaging system, most people here were using Skype, and ran into a few issues that Hangouts solved.  First,  Skype does not send messages unless both users are online.  So if I login to Skype and send a message to another person who is not online they may not see that message for days.  This has caused a lot of headache and miscommunications in the past.  Hangouts will send the message to their Gmail inbox if they are offline.  The next time they login to their account they will see your message.  Facetime is a great program but it’s essentially video only and we wanted a chat client as well.  There’s always iMessage but the problem with both Facetime and iMessage is we need Apple devices, which a lot of people have, but not everyone.  Hangouts fixes this with the universal compatibility I already talked about.

Video Conferencing

Hangouts is integrated into every Google product now.  If you are using Google Apps for Business when you schedule a meeting you can set it to be a video meeting and Hangouts will handle the setup.  When the meeting begins the users simply need to click on Join Video Call and Hangouts groups everyone together in the same Hangout and your meeting can begin.


You can also have video Hangouts, including screen sharing, with up to 15 people at the same time!  That’s amazing!  Skype charges for anything more than two.  We have been making video phone calls to each other a lot to talk around the office quickly and to share our screen and ideas.



Hangouts comes packaged with a lot of plugins you can use out of the box that make it even better.  Google Drive allows you to open a document for all users in the Hangout to edit at the same time.  YouTube lets the group watch YouTube videos together.  You can even set a queue and everyone can add to it.  When a video is playing everyone is muted so the Hangout can watch in peace but you can un-mute yourself if you want to talk.  There is also an Effects plugin that lets you play silly sounds and put weird props on your head to make Hangouts just a little more fun.

Get It

I’ve used Google Hangouts for over a year and absolutely love it.  In my last year of college it was a life saver for group projects because we could work on the same document at one time while all talking together.  Screen sharing was great for pair-programming and helping each other debug and show off new features.  Since we decided to try it out at work Hangouts became the go to service for chat.  We have held several video meetings over Hangouts with both Europe and Asia and had no problems at all.  To get the most out of Hangouts be sure to install the Chrome plugin.  Seriously, if you aren’t using Google Hangouts sign up for a Google+ account, even if you won’t ever use it, just to use Google Hangouts.


There’s just something about having a map of an address that is appealing to people.  Why just list the address like a mailing label when you can place a nice marker on an interactive Google Map?  That’s what I thought too when I was adding content to our customer profiles.  I’d never done this before but knew that Google has a great API for accessing their data as well as some pretty good examples to follow.  The API covers how to use Google Maps on any device but for the purposes of this post I will be focusing solely on web.

Let’s go over some ground rules for using Google Maps API and then move on to a very simple example and build upon it slightly.  To start off with, you can only make a limited number of requests to Google for maps data before you have to start paying.  For a small company or webpage this limit will not be a problem.

For-profit web sites are permitted to generate up to 25 000 map loads per day using the Google Maps JavaScript API v3. A map load is counted when a map is initialized on a web page. User interaction with a map after it has loaded (eg. panning the map, zooming the map, or changing from roadmap to satellite map) does not have any impact on usage limits.

That’s a lot of requests, 25,000, and I know I won’t ever get to that point but if you do Google’s got your back.  Say one day your site becomes an overnight success.  You’re serving tons of traffic and your host is demanding money for the increased CPU usage and storage and you have complaints piling up about site downtimes and slow server times the last thing you want is one more person, Google, coming to complain to you.

In order to ensure that sites which experience short term spikes in usage are not adversely affected by the Maps API usage limits, only sites that exceed the limits for more than 90 consecutive days are subject to the limits.

Nice.  Thanks Google.  After that you better apply for a Google Maps API Business License or purchase additional quota or deal with your high traffic problem and make it go away.  Now, onto our map example.  Google uses straight vanilla JavaScript and in my later example I change a few things to leverage JQuery.

Simple Map


This is the example given by Google and it is fairly straight forward.  We have some basic HTML5 page with a map-canvas div.  Since div’s have an initial height of 0 the style is set to give it a height.  I had some issues when I tried this exact code and needed to modify it to use specific pixel height.  The specific pixel height is nice because it gives you straight control over how tall it will be.  Applying this with Bootstrap columns will give you a nice width and in my case a widescreen looking map.

The map has a number of options shown above.  Zoom is how zoomed in the map is, the higher the number the closer you are.  Center tells the map where to be centered and uses latitude and longitude, this can be changed dynamically and is what I will show in a second.  MapTypeId refers to the type of map and you can do ROADMAP, SATTELITE, HYBRID, or TERRAIN.  After that we create the map in the DOM and add it to our div.  That’s it!  Now this map is kind of simple and boring, right?  It only shows a specific location, no markers, and is hard-coded.  Let’s change a bit of that and make, still a basic map, but a geolocating map.

I wanted to create a map that would update to the address of the customer.  I have the address on the screen I was just going to pull it and make a request to Google to center the map on that location and place a marker.  Simple enough.

Simple Geolocating Map




I have used a little bit of JQuery to get the text from my address section and a little bit of Bootstrap to make everything look nice.  I also set the map-canvas to have a height of 150px, but that was personal preference.  It does need a height though or you will not see it.  Going through the JavaScript, I have set an initial starting location as well as set the zoom all the way out.  If the address is not found I want to just show a map of the world.  Create the map and then we need to geolocate the customer’s address.  Using Google’s geocoder this is easy because they have a variable named address and you can enter anything in there that you would normally enter into a Google Map’s search bar.  I simply grab all of the address, including the customer name, and go for the search.  If Google returns with an OK response we focus the map on that location, zoom in a bit, and add a marker to look nice.  I also created a URL to link to Google maps itself when the marker is clicked.  This was a request from some users that wanted to go to a larger map.

I also added a button that lets the user change the address if the customer is not found.  Google will make the attempt and if they can’t find it we let the user know that that address may be invalid and to check on it.  If it is right then they can just ignore this problem or report it to Google with the link at the bottom right of the map.

That’s it.  There are a lot of different things you can do with the Google Maps API including directions, custom markers, adding more markers, etc.  Take a look at all of the API documentation if you have further needs.  For us this was sufficient and a lot of people like it even if it is just a visually pleasing item and no one will actually use.  Comment below on how you are using the Maps API or if you have any questions on what I’ve done here.

UPDATE:  If you’d like to read more about Bootstrap compatability with Google Maps check out their Third party support page.


Google has released their own competitor to Apple TV and Roku called Chromecast.  It’s a very small device that plugs into an HDMI port in your TV and can stream Internet video right to your TV.  The box is very small and does not come with a remote because your tablet/smart phone/laptop/desktop is your remote.  Using the apps on your tablet or smart phone you can stream YouTube videos, Google Play purchases, and Netflix to your TV with the push of a button.  For the desktop/laptop you can stream anything that is in your Google Chrome browser, which you should all be using anyway.  At a price tag of $35 it’s pretty easy to convince yourself to just jump in.  Below is the unboxing as well as my thoughts on setup and use.  I’ve had it for a few days now so I’m not a huge expert on it but it’s so simple there really isn’t much to it.

Let’s walk through the pictures and setup.  That small box is all you get when you order Chromecast.  Opening it up reveals the HDMI device and taking that out shows you there is at least one more wire.  Chromecast needs power, as HDMI ports aren’t powered, and it gets it through either a USB port on your TV, which is what I did, or they have an adapter that lets you plug it into a wall.  After plugging it in you switch to the HDMI channel for that device and you see that great setup screen.  It tells you the URL to go to and you follow the very basic setup instructions.  As anyone who knows me will attest, I tend to skip instructions and I misread what I was supposed to do.  It said to connect to the Chromecast’s WiFi using my phone or laptop.  I thought it meant the WiFi my Chromecast will be on, hence the error screen.  Once I reread and then checked the available networks I saw my Chromecast was broadcasting and let me jump on.  After connecting you go through a setup to verify that it is installed correctly and to tell Chromecast which network to connect to, give the WiFi password, and give your Chromecast a name!  I named mine Chrometastic.  It took a couple of tries to initially connect to my network but once it was connected everything was great.

Until I released there really isn’t that much to do with Chromecast right now.  There are only a very small handful of native apps that will stream to the Chromecast.  Right now only YouTube, Google Play, and Netflix work natively with big names like Hulu, HBO, Redbox Instant, and Revision 3 among others working on apps to be released soon.  We don’t use Netflix, we use Amazon Prime Instant Video, so that’s one app I don’t use and I’ve never bought anything from the Play Store, though I may now.  YouTube I have never really been into either.  I know there are people who can watch hours of YouTube but I never saw the appeal, until now.  Using my Nexus 10 I setup a queue of YouTube videos that lasted two hours and just sat and watched all the goofy things that are on YouTube.  Very easy to use and the quality on the screen is perfect.

The Hulu app is still in development but I wanted to try streaming from my laptop to the screen using Chrome.  I opened up Chrome, downloaded the extension, and headed over to Hulu.  I picked a great episode of Psych to see how good the quality would be and hit the Cast button.  After a moment of buffering that tab appeared on the TV, video and all.  The frame rate was a bit lower than the native apps but it was definitely not terrible.  They say that feature is still in beta, what Google product isn’t?, so I hope it gets a little better but it’s not bad at all.

There has been talk of Google blocking you from playing local content through Chromecast.  This was a huge bummer to me because that is one of the things I wanted to do with it.  Luckily, just as I was writing this, Google has come out and said that they will let you cast content from your local storage.  Big plus and I’m glad they said something about it.

I loved everything about the experience and continue to use it as my YouTube watching device.  I think it is still really new and needs to be developed a bit more but is worth $35.  Once more apps are created for it, really looking at you Amazon, it will be awesome.  Even though I know everyone already has a device that plays digital media like a Playstation 3, XBox 360, Apple TV, Roku, the list goes on, I think there is a place for Chromecast if only for the price and YouTube watching.