First, if you already have a Google account (like a GMail address), you will want to log out of by clicking on your name or icon up in the upper right corner of any Google app, and then click the “Sign Out” button:
Since last week, I’ve been immersed in coding and development education about various cloud applications.
First there were a couple of meetups about the Google Wave product that gave me a overview of some of the capabilities and requirements for developing applications around the Wave product. Google Wave is an interesting piece of social media that is a bit like chat and MediaWiki combined with WebEx.
The first talk on Monday, was about the federation server, which is the open source implementation of Google Wave. The idea is that you could have a Wave server inside your firewall that could protect your data, while also allowing for communication and interaction with other federated servers. The code is so new, that it is actually using a different protocol than the Google Wave servers are using.
This is a very early prototype, but the idea is that it will use standard XMPP servers to communicate between domains, and use typical certificate based trust mechanisms to authenticate between domains. The internal server could be implemented with rules to (for example) prevent patient data from being sent outside of the firewall in a conversation between a medical team and a provider at another institution.
The next talk on Wednesday was about writing extensions for Google Wave. These extensions are UI widgets (called Gadgets), and Robots, which add capability to Google Wave.
As an example, you could have a voting Gadget, that allows the collaborators to vote. A Robot could add the Gadget to the Wave, tally the results, and write them out to a database.
A Robot can also do interesting things like watch the wave for keywords and make changes or respond. Some of the examples are a grammar checker that corrects grammar as you type, a code formatting and highlighting robot, and the classic Eliza conversational robot.
Next was the weekend long GTUG Campout at the Googleplex. This was a heads down coding adventure where the idea was to get a workable Google application up and running in 48 hours. I signed up for the campout a while back, with the intent of learning how to work with Google Wave.
I had signed up for a Wave sandbox account when it was first announced at the Google I/O conference, so I was able to play with it a bit, but hadn’t really had time to get started with developing anything. After the talk on Wednesday, I had a pretty good overview of how to get set up, so at least I had all the bits installed to parcipate.
So Friday came and I returned to Google once again. The idea was that we form teams to develop applications using the Wave extensions, so the first task was to come up with ideas and pitch them. After the 50+ people got through with their 5 minute pitches, we networked for another hour forming teams. There were many ideas that were very similar, and for the most part these groups joined up into a combined team.
After the teams were formed, the Google team gave another talk about developing Wave extensions, which was a great review and contained some things that aren’t really documented elsewhere (since the API is still changing). The slides from that talk became my guide to building my first robot, an experience that I’ll talk about in another post about the GTUG Campout 2009.
If you’re like me, you eventually end up with too many identities. I haven’t figured out how to associate different email addresses with a single account, so I have to maintain several different Google identities.
For example a client invites me to join his Google group using his company email, so I have to set up a new account to access and manage that group. At some point I try to consolidate these to use my GMail identity, but that isn’t always possible (the client may for instance have decided to restrict their group to only allow access by people using their corporate domain addresses for instance).
Eventually though, I do end up with accounts that I’m no longer using (and sometimes I just would like a fresh start). Google actually has a link in their help about deleting an account, but it took me a bit to find it, so I thought I’d post a step by step guide.First you must be logged in, so go to one of the Google pages like http://groups.google.com and look for the link at the top right corner of the page that shows you who you are logged in as:
Once you are sure you are logged in with the right account, click the “Account” link and you will be taken to the management page for your account:
Click on the link next to “My Products” that says “Edit” and you’ll go to the accounts page, where you can choose to remove your web history OR account:
Click the link that says “Close account and delete all services associated with it”, and you’ll get the delete account screen, which has a number of options and validate with your password. Unless you want to keep a membership in a group, check all of the boxes here, then hit the button that says “Delete Google account“:
Once you have done this, you’ll get a screen that tells you that the account has been deleted:
That’s all there is to it – you can recreate the account by following the steps from my prior post Getting a Google Login for Your Existing Email Account
One of the things I always struggle with as a project manager is how to communicate availability. If I’m using a corporate email system like Exchange, it is extremely easy to set up calendars to be shared, and everybody using that system has the ability to at least see your free/busy status which helps in setting up meetings.But when you’re dealing with a disparate group, who don’t have access to the same information, figuring out meetings can be difficult. I manage some of this complexity with tools like Plaxo and MobileMe, which allow you to keep calendars in synch across a variety of calendar systems, including Google, Yahoo and even the local calendar application.
This doesn’t solve the problem of how to check on availability however. What I’ve always found most effective inside the corporate firewall is to make my calendar public, and to ask my team members to share their calendars as well. This allows me not only to quickly schedule meetings, but gives me insight into what sorts of meetings my team is scheduling, and how they are managing their time.
So, on the outside of the firewall, I have started using Google Groups and Google Calendar to acheive some of the same effect. First I set up a Google Group to give me an alias for the team. It also gives us some basic collaboration tools, web access to messages, and a place share files. Then I set up a Google Calendar with the same name as the Group. There’s no requirement to do this, but it’s convenient to have a calendar where you can put group events, and keeping the name consistent makes life easier.
Once you have a group calendar created, it will show up in your calendars list along with any other calendars you have created. If you added the group email alias to the sharing list during creation, then everybody in your group will have been notified that they have access to the calendar. Alternatively you could simply email all of the individuals in the group.
Once you have the members in the group, you can share your calendar with them by using the “Share Calendar” by choosing it from the menu that pops up when you click on the little inverted triangle next to your calendar (in this case I’m sharing my personal calendar, you would do the same for the group calendar):
Once you choose this option, you will be taken to the “Share this Calendar” tab of the settings for that calendar:
First thing that I do is to make sure the “Make this calendar public” check box is ticked, this allows your calendar to be seen by others. You can also set the “Share only my free/busy information (Hide details)” tick mark if you want to hide the specifics of your calendar. Once that is done, everybody can see my calendar.
Even if you don’t make your calendar public, you can send an invitation to share your calendar, by typing in an email address. So to notify your group that they can access your calendar, you can either invite them individually, or type in the email address of the group.
They should then get a nice invite from Google Groups that tells them your calendar is available, and can add it to their “Other Calendars” list.
The calendars in this list get added to your calendar with different colors, so at a glance you can see what events go with which calendar. You can toggle which calendar events display by clicking on the name of each calendar (when the background is white, the events are not show). Below is a shot of my calendar with the group and Laura’s calendar showing:
As you can see, Laura chose to share only her free/busy time, so all I see is that she’s busy between 5 and 6:30
The last step is to ask for access to your team member’s calendars. To do this you click on the “Add” link at the bottom of the “Other Calendars”.
This takes you to the screen where you enter the email address of the person that you’d like to ask for access to their calendar. If the address isn’t a GMail address, it will also prompt you to invite them.
Once they have accepted, you will have access to their calendar, and it will appear in your “Other Calendars” list (as Laura’s does in mine).
Because the group and calendar are not integrated, you will have to add any new members (or change or delete) in both places, but in essence this gives you access to what you need to help make meeting scheduling easier.
I use Google Reader to follow industry blogs about things like PHP and Java. One of the nice things that Google Reader does, is to automagically translate the page into English when the post is in a different language.
This is very helpful especially with blogs in subjects like these, especially since the international community is very active. Reader will give you a brief translated version of the feed, and when you click the link to go to the page, it typically forwards you through http://translate.google.com so you can read the page. For the most part, this yields a very understandable page that represents the subject the author was trying to convey very well.
To set this up in Google Reader, you just set the feed to automatically translate the page by clicking on the “Feed settings” button:
Notice that with the “Translate into my Language” checked, you’ll see “Translated by Google” at the top of the page. The link to go to the post is now run through the http://translate.google.com with the appropriate languages so that you can read it, and if you click the “View original” link, you’ll see the summary in the original language.
In the above example, the feed looks like this, when I choose original language:
Clicking on the link for this post takes me to http://feeds.feedburner.com/~r/cakephp/~3/521947537/ which ends up at the blog for CakePHP & DIEVOLUTION, which looks like:
Going back to the translated version, if I click on the link to go the the page, I get redirected to http://translate.google.com/translate?sl=auto&tl=en&u=http%3A%2F%2Ffeeds.feedburner.com%2F~r%2Fcakephp%2F~3%2F521947537%2F , which gives me the nicely translated page (below).
So this got me to thinking: it should be a relatively simple thing to add a link to your page to send it to Google translate, to allow somebody to translate into their language, since it’s basically just an HTTP GET with parameters of the page, source language and destination language.
So I figured I’d try it with my blog first. I know the URL is http://blog.accuweaver.com, and my language source is EN (English). So to translate into German for instance, I need to create a URL that starts with http://translate.google.com/translate, and includes those two elements, and the language I want it translated to.
The parameters for the link are as follows:
|u||URL of page||http://blog.accuweaver.com|
|sl||Source language (English)||en|
|tl||Translate to language (German)||de|
So by putting these together, I get a link that looks like: http://translate.google.com/translate?u=http://blog.accuweaver.com&sl=en&tl=de, which when clicked will give me a German translation of my page.