Thursday, March 12, 2015

Building a Meeting Scheduler for Android using the new Calendar API

Though developers are quite comfortable thinking in abstractions, we still find a lot of value in code examples and fully developed sample applications. Judging by the volume of comments, tweets, and git checkouts of the Au-to-do sample code we released a few weeks ago, our readers agree.

For Google Apps API developers who want to get started writing mobile apps, here’s a great new resource: a sample application that integrates Google Calendar API v3 with Android and illustrates best practices for OAuth 2.0. This meeting scheduler app built by Alain Vongsouvanh gets the user’s contact list, lets users select attendees, and matches free/busy times to suggest available meeting times. It provides a simple Android UI for user actions such as attendee selection:


The sample code for Meeting Scheduler demonstrates many key aspects of developing with Google Apps APIs. After authorizing all required access using OAuth 2.0, the Meeting Scheduler makes requests to the Calendar API. For example, the class FreeBusyTimesRetriever queries the free/busy endpoint to find available meeting times:


FreeBusyRequest request = new FreeBusyRequest();

request.setTimeMin(getDateTime(startDate, 0));
request.setTimeMax(getDateTime(startDate, timeSpan));

for (String attendee : attendees) {
requestItems.add(new FreeBusyRequestItem().setId(attendee));
}
request.setItems(requestItems);

FreeBusyResponse busyTimes;
try {
Freebusy.Query query = service.freebusy().query(request);
// Use partial GET to retrieve only needed fields.
query.setFields("calendars");
busyTimes = query.execute();
// ...
} catch (IOException e) {
// ...
}

In this snippet above, note the use of a partial GET request. Calendar API v3, along with many other new Google APIs, provides partial response with GET and PATCH to retrieve or update only the data fields you need for a given request. Using these methods can help you streamline your code and conserve system resources.

For the full context of all calls that Meeting Scheduler makes, including OAuth 2.0 flow and the handling of expired access tokens, see Getting Started with the Calendar API v3 and OAuth 2.0 on Android. The project site provides all the source code and other resources, and there’s a related wiki page with important configuration details.

We hope you’ll have a look at the sample and let us know what you think in the Google Apps Calendar API forum. You’re welcome to create a clone of the source code and do some Meeting Scheduler development of your own. If you find a bug or have an idea for a feature, don’t hesitate to file it for evaluation.


Eric Gilmore  

Eric is a technical writer working with the Developer Relations group. Previously dedicated to Google Enterprise documentation, he is now busy writing about various Google Apps APIs, including Contacts, Calendar, and Provisioning.

Reach New Customers Integrate with Google Apps in the Google Apps Marketplace

At tonights Campfire One, we launched the Google Apps Marketplace, to make it easier for you to create applications that integrate deeply with Google Apps, and give you access to our more than 2 million businesses and 25 million Google Apps users.

App integration is accomplished using existing standards such as OpenID, OAuth and Atom Publishing Protocol. The purchase experience is a simple "Add it now" button that streamlines provisioning and data authorization steps for admins, and it gives end users a link to your app in their Google universal navigation bar for one click access and single sign-on.

So what does it take to offer an integrated app for sale in the Google Apps Marketplace?
1) Have or create a business-related cloud application, on the hosting platform of your choice
2) Integrate your cloud app with Google Apps by:
  • Adding a single sign-on (SSO) feature using OpenID (required) - Enable your users to access your app more easily and avoid multiple passwords by becoming an OpenID relying party.

  • Offering features that integrate data between your app and Google Apps via Google Data APIs (optional) - Applications, like people, work better when they collaborate. Whether your app needs to schedule events, import or export documents and spreadsheets, sync contacts or publish information to sites, the APIs are ready. 

3) Create a manifest file which will drive your app installation flow and subsequent life cycle (URLs for setup, configuration, support and login, as well as which Google Data APIs the application requires), pay a $100 one-time listing fee, and submit it.

Once your application is approved it is easily discoverable by the millions of Google Apps customers. And in return for a streamlined purchase and install process, and integration features exclusive to installable apps, we ask to share 20% of your revenue from new customers. Our billing service, coming soon, is designed to be flexible enough to accommodate both established developers and brand new startups, and will automatically manage the Marketplaces revenue share fees. It will enable users to buy directly from the Marketplace using their existing Checkout account, and offer a unified bill for all purchases. Until this service is available, you can use your existing billing and payment mechanism for your app. For more details on how revenue sharing will work and when it will become a requirement, see the marketplace billing policy.

More than 50 developers have already integrated their apps with Google Apps and have made them available in the Google Apps Marketplace. We hope you will join them and we cant wait to see what new & innovative applications you will bring to the market. And if youre also a Google Apps customer, check these great apps out.

If you havent already, watch the Campfire One event on YouTube:



My top 12 agile podcast episodes

When I mentioned at SDEC10 that much of what I know about agile I learned from podcasts, several people expressed interest in my favourites.  Here are my top 12 (now 13) podcast episodes in random order:

1. Hanselminutes 119. What is Done? A conversation with Scrum co-creator Ken Schwaber. An excellent conversation that answered some of my initial questions about Agile like - how do logging, security and other infrastructure tasks fit in the back log, and of course - what is done?

2. AgileToolkit - Allistair Cockburn interview at Agile2006. Allistair talks about his evolution as a Methodologist from a hardware guy, the Crystal family of agile methodologies, his writing and much more.   Crystal recognizes that one agile methodology cannot be used in all companies and tries to identify the core principles and practices that are important for all agile projects.

3. Hanselminutes 145. An overview of the SOLID principles with Robert C. Martin ("Uncle Bob").  Excellent overview with examples.

4. LeanAgileTalk 20070118. Part 1 of a great conversation with Alan Shalloway on how to apply lean principles to agile development.  A good start on how to implement practices - the how.  Some excellent sound bites in here.

5. AgileToolkit - Uncle Bob interview at Agile2005. A brief discussion with Bob Martin on the essential principles of Agile

6. Hanselminutes 23. A short introduction to scrum.

7. Hanselminutes 31.  A good introduction on Test Driven Development and the benefits.  Includes discussion of the pros/cons.

8. AgileToolkit - APLN Panel discussion. Long (2 hours), but good.  Here are some of the highlights:
- Worst agile transition failures? - What is required for transition? Leadership, dont do partial agile, must integrate testers on the team, need to form teams that work effectively together - Self organizing teams - is this possible? The original XP team was full of architects, but our teams may not be - how can we do this? The original backlash against architecture was that architects were responsible to standards, not to the business problem. Also - it is important to move our experts out of the corner office and off the pedestal and on to the teams as active members producing code. - Level of up front architecture required? Depends on problem/project. With a new domain, or a junior team, more architecture guidance is required. With a known domain and an experienced team, less architecture guidance is required. - Is requirements a dirty word? No - signoff is the dirty word. Requirements are good - but waiting months before implementing is not, not accepting change is not. Dont penalize people from finding errors, omissions, changes at any step. - How to do fixed price projects? One suggestion - share the risk (i.e. cost) for the first 6-8 weeks (2 or 3 iterations) to measure your velocity and gain trust. Then if client is happy, you have enough info to fix the price, and you get your "risk" back. - Why is fixed bad? You give them what they asked for, rather than what they need.  Never used + rarely used features = 64% of the code (Standish report)

9. AgileToolkit - Uncle Bob explains the agile manifesto. Robert "Uncle Bob" Martin answers the
question of "What is Agile?" He goes back to the start, to the Snowbird meeting, the formation of the Agile Alliance and the drafting of the Agile Manifesto. He also looks at the core principles and key practices of Agile software development.

10. Agile Toolkit - Poppendiecks at Agile 2006. Tom and Mary discuss several topics including:
- optimize the whole, not the pieces - dont neglect one of the pillars of lean: respect people - queueing theory.  Examples a defect list is a queue that should not exist.  We should be mistake free after each step.  Dont build on top of bad software.  Also, this helps eliminate interim artifacts like test strategy document. - testing phase - this is testing too late - relating lean to cooking by a master chef
- describing how clothing store Zara implemented lean (very interesting)

11. IT Conversations - Ken Schwaber. Ken talks through many of reasons why agile SW development is such a necessary change in the industry.

12. Hanselminutes 169 - TDD with Roy Osherove. Roy Osherove educates Scott on best practices in Unit Testing techniques and the Art of Unit Testing.

13. DotNetRocks show 750 - While at Prairie Dev Con in Calgary, Carl and Richard chatted with Steve Rogalsky about User Story Mapping. Steve explains how User Story Mapping helps to visual your backlog beyond a serial list of features to allow you to improve your project decisions, priorities, plans, and delivery. (Sorry - had to add this one ;)

Hope you enjoy them. Let me know if you have other favourites - Id love to listen to them.

Announcing the Archive Feed of the Documents List API

Users of the Google Documents List API have traditionally had to perform individual export operations in order to export their documents. This is quite inefficient, both in terms of time and bandwidth for these operations.

To improve latency for these operations, we have added the Archive Feed to the API. Archives allow users to export a large number of items at once, in single ZIP archives. This feature provides a useful optimization for users, greatly increasing the efficiency of export operations. Additionally, users can receive emails about archives, and choose to download them from a link provided in the email.

This feature had a soft release earlier this year, and we think it’s now ready for prime time. For more information, please see the Archive Feed documentation.

Vic Fryzel profile | twitter | blog

Vic is a Google engineer and open source software developer in the United States. His interests are generally in the artificial intelligence domain, specifically regarding neural networks and machine learning. Hes an amateur robotics and embedded systems engineer, and also maintains a significant interest in the security of software systems and engineering processes behind large software projects.

Wednesday, March 11, 2015

More Apps Script APIs and Features

Developers like you have built amazing scripts with Apps Script, and we want to make Apps Script even more useful. Weve been working hard to add a variety of new APIs and features in Google Apps Script. Today, were ready to share a few of them with you.


New in Document service: named ranges, bookmarks, setting cursor or selection, and undo

Named ranges are a popular feature of the Spreadsheet service; and now, you’ll be able to do something similar in the Document service. With named ranges, your scripts can tag a section of a Google Doc for later reference. For example, a bibliography script could set a named range on every citation in a document, then easily update the citations in the future.


You can use a similar API to manage bookmarks, too. Unlike named ranges, bookmarks are visible to the user and allow you to link to a particular place in a document.

Also for Google Docs, weve added the server-side methods setCursor(position) and setSelection(range) to change the users cursor position or active selection, plus a client-side method, google.script.host.editor.focus(), which switches the browser focus from a sidebar or dialog back to the document.

Oh, and hey: the Undo command in Google Docs can now revert changes made by a script.


New in HTML service: NATIVE mode by default

If youve used HTML service much, youll know that the Caja security sandbox has two modes. NATIVE mode imposes fewer restrictions than EMULATED mode and generally runs faster. As of today, NATIVE is now the default if you have not specified which mode your script should use. In a few edge cases, this may affect how existing web apps operate; if so, simply append .setSandboxMode(HtmlService.SandboxMode.EMULATED) to your HtmlOutput object to restore the old behavior.


Revised Properties service

In preparation for future improvements to Apps Script, weve revamped script properties and user properties, combining them into a unified Properties service and adding the notion of document properties, which are (surprise!) specific to a particular document, but shared among all collaborators. The biggest change is that user properties are no longer shared between scripts, but our guide to the Properties service provides all the details. As part of the change, the old ScriptProperties and UserProperties services have been deprecated, although they will continue to function in existing scripts until a sunset date is announced.


Deprecation of Finance service

We’re excited to bring you these new tools. With these new additions, we have also deprecated Finance service. It will remain available for the next six months but will be turned off on September 26, 2014.


Saurabh Gupta   profile | twitter | blog

As the product manager for Google Apps Script, Saurabh is responsible for Apps Script’s overall vision and direction.

Expand your reach with web apps

Apps Script developers that wished to share their work with a larger audience have traditionally turned to the Script Gallery, which allows other users to copy and install the script into their own spreadsheets. While appropriate for custom functions and spreadsheet extensions, it didnt fit well when distributing more complex functionality and apps.

In this blog post well be highlighting a newer way to distribute your scripts: deploying them as a web app and publishing them to the Chrome Web Store. Compared to the Script Gallery, the Chrome Web Store has some distinct advantages for developers:

  • Automatic updates - Change your code, do some testing, and publish a new version to update the app for all users instantly.
  • More information - Detailed descriptions, promotional images, ratings, and reviews lead to compelling listings.
  • Greater discoverability - Visit the Chrome Web Store site to learn about the benefits.

Looking through the Script Gallery we believe there are many scripts that would be a great fit for the Chrome Web Store and would benefit from the advantages listed above. Some aspects of a good candidate script are:

  • Custom UI - Users interact with your script through a custom user interface, not via custom spreadsheet functions or onEdit triggers.
  • Background processing - Your script uses time-based triggers to do work in the background and doesnt require that the Google Spreadsheet is open.
  • Not primarily about Google Spreadsheets - Your scripts main focus isnt spreadsheets and you utilize a variety of services to provide separate functionality.

A great example of such a script is Gmail Meter, which was first launched in the Script Gallery but has since been published to Chrome Web Store. Now users can install and run the script without needing to create a spreadsheet, see script code, or set up triggers. It may take a little work to update a spreadsheet-based script to use the web app model, and some common tasks are:

  • Implement doGet() - Instead of showing your custom UI on the spreadsheet with Spreadsheet.show(), put the same code into the doGet() method and return the final UiInstance or HtmlOutput object.
  • Deploy as a web app - Configure your script to run as a web app, which will assign it a unique URL. In most cases youll want the web app to run as the user so that it can access their services.
  • Remove references to active spreadsheet - When published as a web app there is no active spreadsheet, so if your script needs access to a spreadsheet then youll need to use SpreadsheetApp.openById() instead. You can use the DocsList service or the DocsListDialog UI widget to help users locate the desired spreadsheet.
  • Handle multiple users - When published as a web app users access the same copy of the script, so you may need to change the way you organize data to avoid conflicts. UserProperties work well for small settings, and when using ScriptDb make the users login ID or email address part of the objects so that you can filter for them later.

Publishing to the Chrome Web Store only takes a few clicks, and we provide instructions for the process in our documentation. We hope that you are inspired to take your scripts to the next level, and if you have any questions along the way feel free to reach out to us on StackOverflow or Google+.


Eric Koleda profile

Eric is a Developer Programs Engineer based in NYC on the Google Apps Script team. Hes previously worked with the AdWords API and enterprise content management software.

Using OAuth 2 0 with the Provisioning API in Python

Google Apps domain administrators can programmatically create and manage users, groups, nicknames and organization units using the Provisioning API.

Support for OAuth 2.0 in the Provisioning API allows Google Apps domain administrators to authorize access to the API without sharing their passwords. After the administrator agrees to grant access, an OAuth 2.0 token makes sure that an application gets access to the right scope of resources for API calls.

We have recently added a new sample to the Python client library to demonstrate authorization with OAuth 2.0 for an application combining the Provisioning API and the Email Settings API. This sample app iterates through each user on a domain and creates an e-mail filter to mark all messages from outside the domain as “read.” For a step-by-step walkthrough of the sample, have a look at our new article: OAuth 2.0 with the Provisioning and the Email Settings API.

We would be glad to hear your feedback or any questions you have on the Google Apps Domain Info and Management APIs forum.

Shraddha Gupta   profile

Shraddha is a Developer Programs Engineer for Google Apps. She has her MTech in Computer Science and Engineering from IIT Delhi, India.

Tuesday, March 10, 2015

Google Drive Hackathon in Mountain View CA

Hey Silicon Valley developers,

We are organizing a Google Drive hackathon next week. If you’d like to learn more about the Google Drive SDK, meet with Google Drive engineers and have fun developing your first Google Drive application or integrating your existing application, join us.

The event will take place at the Googleplex in Mountain View, CA. We’ll start with an introduction to the Google Drive SDK at 4:00 p.m. on Wednesday March 13th 2013 and the hackathon will run through the next day at 3:00 p.m. See the detailed agenda of this event, don’t forget to RSVP and tell your friends about it.

Also there will be some exciting Google prizes for the best apps.

See you there!

Nicolas Garnier Google+ | Twitter

Nicolas Garnier joined Google’s Developer Relations in 2008 and lives in Zurich. He is a Developer Advocate for Google Drive and Google Apps. Nicolas is also the lead engineer for the OAuth 2.0 Playground.

Introducing Google Docs Cursor Selection APIs in Apps Script

Ever wanted to programmatically insert something at the cursor in Google Docs (say, a “Sign Here” image) or read the user’s selection (maybe for an on-the-spot translation)? Starting today, you can.

Apps Scripts bound to Google Docs can now access the active users Cursor and Selection by calling Document.getCursor() and Document.getSelection(), respectively. The returned objects provide useful information like the element the cursor is positioned in and an array of all of the elements contained in the selection.


Example #1: Selection Translator

This Google Doc contains a simple script that uses Apps Script’s Language Service to translate selected text from English to Spanish through a custom menu item.


Here, it uses the getSelectedElements() method of the Selection class to get an array of selected elements:


var selection = DocumentApp.getActiveDocument().getSelection();
if (selection) {
var elements = selection.getSelectedElements();

Next, it loops through each element, performs the translation, and replaces the original text:


var translatedText = LanguageApp.translate(
element.asText().getText(), EN, ES);
element.asText().setText(translatedText);

Example #2: Bibliography App

At Google I/O this year, Apps Script engineer Jonathan Rascher demonstrated Bibstro, a bibliography sample app for Google Docs that inserts inline citations at the cursor. Today, we’re releasing the source code for Bibstro; you can also try it out by making of copy of this Google Doc.


To insert text, the script calls the aptly named insertText() method of the Cursor object:


var cursor = DocumentApp.getActiveDocument().getCursor();
if (cursor) {
// Determine the text of the new inline citation to insert.
var citation = bibStrategy.getInlineCitationText(...);

var surroundingText = cursor.getSurroundingText().getText();
var surroundingTextOffset = cursor.getSurroundingTextOffset();

if (surroundingTextOffset > 0 &&
surroundingText.charAt(surroundingTextOffset - 1) != ) {
// If the cursor follows a non-space character, insert a space
// and then the citation.
cursor.insertText( + citation);
} else {
// Otherwise, just insert the citation.
cursor.insertText(citation);
}
}

You’ll also notice that the script uses the Cursor class’s getSurroundingText() method to determine whether to insert a space before the new inline citation.


Example #3: Cursor Inspector

To help you become familiar with how cursor and selection work, weve also created a Cursor Inspector sample script. As you navigate through a document, the script displays up-to-date information about your cursor or selection in a custom sidebar. We’re also releasing the source code for Cursor Inspector on GitHub.


These new APIs are available immediately. We’re excited to see what kind of scripts you come up with!


Kalyan Reddy profile | Stack Overflow

Kalyan is a Developer Programs Engineer on the Google Apps Script team in New York City. He is committed to increasing developers’ productivity by helping them fully utilize the power of Apps Script. In his free time, he enjoys participating in the maker community and hacking together robots.

Agile Winnipeg Inaugural Event Shorten the Distance

It was pretty exciting for myself and the other organizers to see a packed room of over 60 people attend the first Winnipeg Agile User Group event on Thursday, March 10, 2011. After a quick meal from Homers and some furniture re-organization, we kicked off the event with a word from several of our sponsors. Wadood Ibrahim spoke on behalf of Protegra and recalled giving a presentation to the local PMI group 10 years ago about agile techniques that was not well received and was delighted by the turnaround of opinions and interest 10 years later.

For the main presentation, Doug Kok and I split the attendees into groups of about 15 people and led them through the ball point game. The ball point game is a simple and fun exercise that allows teams to think about process * people through team decision making and the power of reducing hand-offs. Here are a few images from the event:

Team 1 Discussing their strategy


The scores of the game. Notice the significant improvements from most teams. Team 3 forgot to count during the last iteration, but based upon the process they were using, I think they would have surpassed their estimate of 160

And, thanks to Doug - here is a brief video summary of the teams playing the game: 

So how does the ball point game relate to agile? In both the ball point game and in software development, improvements in speed can be gained in similar ways:
  • Focus on reducing hand-offs by having face-to-face conversations, dedicated teams, shortening the distance between a requirement and its implementation, a question and its answer, etc.
  • Stop frequently to determine how to go faster.
  • Measure your experiments through velocity and frequent feedback.
  • Value and encourage cross-functional, de-centralized, self-organizing teams.
Homework: To take this further, read the 12 principles in the Agile Manifesto and think about how each of the 12 could be re-stated as a way to reduce handoffs, or as shortening the distance between [A] and [B]. Also, to see how these ideas can work in the wild, read this case study on facebook.

To close the event, we held a short open Q&A session. Some of the questions we discussed were:
 1. Can you do agile without TDD (Test Driven Development)
 2. When/how do you do requirements?
 3. How do you control scope creep when you arent defining the requirements up front?
Lively discussion continued over drinks at Triple Bs on Scurfield.

Based on the survey responses, the top 3 categories for future event topics were Agile Testing, Agile Adoption, and Agile Estimating.

Finally, on behalf of the organizers I would like to thank you for participating and thank the sponsors for allowing this event to occur. To register for future event notification, please click here.

Agility on Waterfall projects

So you find yourself on a strict waterfall project, but you want to inject as many Agile practices as you can, where do you start? There are many agile practices that can be incorporated into your day-to-day activities. Here is a start:

1. Acceptance Tests. Regardless of your role, you can write acceptance tests to verify your understanding of the requirements and to reduce the waste that is UAT. Do this before you code.

2. Technical Excellence. TDD, SOLID Principles, etc can be used on waterfall projects even if you dont have official support to write your code that way. Depending on the development team make-up, you may have to find a way to refactor your tests when someone else changes your code, but since waterfall projects are sometimes silo-ed, this may not be an issue.

3. Customer Accessability. Find ways to get near your customers, analysts and testers to walk them through prototype screens, talk about the requirements, or discuss acceptance tests. Do this frequently (daily if possible).

4. Work to done. Make sure your code is shippable and passes all the tests you wrote, plus all the requirements. Be thorough.

5. Deliver Frequently. While you may not be able to put the code in production every 2 weeks, you can certainly put the code (prototypes, screen shots, diagrams, etc) in front of your customer frequently.

6. Be ready for change. Dont be upset when requirements change or new requirements are found. Make sure your code (and your mindset) is change tolerant. Youll still need to fill out the change request forms and follow the process, but at least your code will be ready for it.

7. Team of One. You may not be invited to help with the project estimate, plan the project, write status reports etc, but you can run your own tasks like an agile team. Create your own visual project management board, hold stand-ups and retrospectives with yourself, practice your planning poker skills by re-estimating all the tasks assigned to you, plan your iterations.

8. Suggests phases. If you can, suggest a phased approach to the project (rather than iterations). This may enable you to eliminate some of the waste and respond better to change.

In short, try to intregrate as many practices as possible, but dont necessarily ask permission to do so. Hopefully someone will notice and ask the important question: "Why are you doing that?"

Monday, March 9, 2015

Time to Wow the Judges The Google Apps Developer Challenge is Ready for Submissions!

Are you an expert in the Drive API or Google Apps APIs? Are you an expert in Google Apps Script? If you are, then you must have been busy coding away for the Google Apps Developer Challenge since its launch earlier last month.


Now it’s time to wow the judges, as the Google Apps Developer Challenge is now open for submissions! If you would like to submit your application, please submit on the website using one of the three following categories:

  • Enterprise / Small Business Solutions e.g., Accounting, Sales, Workflow, Collaboration
  • Social / Personal Productivity / Games / Fun
  • Education / Not for Profit / Water / Food & Hunger / Health

If you are not ready, don’t worry -- as you still have time. The submission deadline is 24 August 2012 at 23:59:59 PT. Remember to use the many resources available to you in order to get ready. Ask questions on the Google+ Office Hours and Google Developers Live. Read up on Apps Script and the Drive and Apps APIs on Google Developers. Review the latest updates since Google I/O as well as the pre-submission checklist. Post questions and comments using the hashtag #gappschallenge on Google+. Review, and most importantly, finalize your application!

Best of luck!




Chukwuemeka Afigbo profile | blog

Chukwuemeka is a Program Manager at Google with the Emerging Markets Outreach team where he works closely with developers, startups, businesses and IT professionals in the region to successfully grow their business around Google Developer Tools and APIs. His current mission is to drive developer internet content in Sub Saharan Africa.

Even more Image Metadata for the Google Drive SDK

Lots of photographers, both professionals and amateurs, have started using Google Drive to store their photos online. We recently launched new features such as a way to quickly preview files and today I wanted to share more details about the image media metadata capabilities of the Drive SDK.

All digital cameras add some Exif information to the photos they take, and we exposed an initial set of Exif fields via the Google Drive API at the end of 2012. That set of metadata has now been expanded to include 9 new fields, such as the sensor type or the metering mode.

For instance, take a look at this recently taken photo:

Photo credit: Claudio Cherubino

What follows is the image media metadata as returned by the Drive API (in bold the new fields):


"imageMediaMetadata": {
"width": 2048,
"height": 1536,
"rotation": 0,
"date": "2013:02:18 12:51:51",
"cameraMake": "Panasonic",
"cameraModel": "DMC-GF2",
"exposureTime": 0.0025,
"aperture": 7.1,
"flashUsed": false,
"focalLength": 14.0,
"isoSpeed": 100,
"meteringMode": "Pattern",
"sensor": "One-chip color area",
"exposureMode": "Auto",
"colorSpace": "sRGB",
"whiteBalance": "Auto",
"exposureBias": 0.0,
"maxApertureValue": 3.6289062

}

You might have noticed that a number of fields have been added to the response while others (“subjectDistance” and “lens”) were not returned. This is expected as the camera doesn’t have to populate all Exif fields and in that case the corresponding properties will simply not be included in the API response.

For more information and to check the description of all metadata fields returned by the API, check the Files resource Reference Guide. If you have technical questions, please post them on Stack Overflow, my team monitors the google-drive-sdk tag and is happy to help.

Claudio Cherubino   profile | twitter | blog

Claudio is an engineer in the Google Drive Developer Relations team. Prior to Google, he worked as software developer, technology evangelist, community manager, consultant, technical translator and has contributed to many open-source projects. His current interests include Google APIs, new technologies and coffee.

Sunday, March 8, 2015

Doodles for your Google Apps domain

Since 1998, when the first doodle was released, they have been one of the most loved features of the Google home page. There have been doodles to celebrate all kinds of events, including national holidays, birthdays of artists and scientists, sports competitions, scientific discoveries and even video games! Also, doodles have evolved from simple static images to complex applications, such as the interactive electric guitar used to celebrate the birthday of Les Paul.

Want your company logo to change for selected events or holidays, just like doodles? The Admin Settings API allows domain administrators to write scripts to programmatically change the logo of their Google Apps domain, and Google App Engine offers the ability to configure regularly scheduled tasks, so that those scripts can run automatically every day.

With these two pieces combined, it is pretty easy to implement a complete solution to change the domain logo on a daily basis (assuming the graphic designers have prepared a doodle for each day), as in the following screenshot:

Let’s start with a Python App Engine script called doodleapps.py:

import gdata.apps.adminsettings.service
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util
from datetime import date

class DoodleHandler(webapp.RequestHandler):
# list of available doodles
DOODLES = {
1-1: images/newyearsday.jpg,
2-14: images/valentinesday.jpg,
10-31: images/halloween.jpg,
12-25: images/christmas.jpg
}

# returns the path to the doodle corresponding to the date
# or None if no doodle is available
def getHolidayDoodle(self, date):
key = %s-%s % (date.month, date.day)
if key not in self.DOODLES:
return None

return self.DOODLES[key]

# handles HTTP requests by setting today’s doodle
def get(self):
doodle = self.getHolidayDoodle(date.today())
self.response.out.write(doodle)

if doodle:
service = gdata.apps.adminsettings.service.AdminSettingsService()
// replace domain, email and password with your credentials
// or change the authorization mechanism to use OAuth
service.domain = MYDOMAIN.COM
service.email = ADMIN@MYDOMAIN.COM
service.password = MYPASSWORD
service.source = DoodleApps
service.ProgrammaticLogin()

# reads the doodle image and update the domain logo
doodle_bytes = open(doodle, "rb").read()
service.UpdateDomainLogo(doodle_bytes)

# webapp initialization
def main():
application = webapp.WSGIApplication([(/, DoodleHandler)],
debug=True)
util.run_wsgi_app(application)


if __name__ == __main__:
main()

The script uses a set of predefined doodles which can be edited to match your list of images or replaced with more sophisticated logic, such as using the Google Calendar API to get the list of holidays in your country.

Every time the script is triggered by an incoming HTTP request, it will check whether a doodle for the date is available and, if there is one, update the domain logo using the Admin Settings API.

In order for this script to be deployed on App Engine, you need to to configure the application by defining a app.yaml file with the following content:

application: doodleapps
version: 1
runtime: python
api_version: 1

handlers:
- url: .*
script: doodleapps.py

We want the script to run automatically every 24 hours, without the need for the administrator to send a request, so we also have to define another configuration file called cron.yaml:

cron:
- description: daily doodle update
url: /
schedule: every 24 hours

Once the application is deployed on App Engine, it will run the script on a daily basis and update the logo.

The holiday season is upon us. Could there be a better time for your company to start using doodles?

Happy Holidays!

Claudio Cherubino   profile | twitter | blog

Claudio is a Developer Programs Engineer working on Google Apps APIs and the Google Apps Marketplace. Prior to Google, he worked as software developer, technology evangelist, community manager, consultant, technical translator and has contributed to many open-source projects, including MySQL, PHP, Wordpress, Songbird and Project Voldemort.

Wednesday, March 4, 2015

LN 04 Use Padlet to Break the Ice Brainstorm Share ideas and Have Fun!


"Awesomely Simple and Powerful!"
- Zaid Ali Alsagoff

(What are you waiting for?)


PADLET?
Padlet (early known as Wallwisher) gives you a blank wall, and you can basically put anything you want on it, anywhere. Simple, yet powerful.

It basically empowers people to express their thoughts on a common topic easily. It works like an online sheet of paper where people can put any content (e.g. images, videos, documents, text) anywhere on the page, together with anyone, from any device.

Here is a video tutorial to get you started:



YouTube version:



Yes, you can even use it to present (or curate) learning content. I am not kidding:


Created with Padlet

POWERFUL?

This is why Padlet is simple, yet powerful:

  • Easy-to-Use
     Simple interface, double click to add posts (or double tap for touch screens), drag and drop, auto save, etc.  WOW!  
  • Instant Collaboration
    Everyones activity can be seen on the wall instantly. Page reloads is history.
  • Multimedia
    You can add any kind of file/links - videos, images, documents. You can paste links (URLs) to (YouTube) videos (view-able from the wall). Can drag a document from your computer. Can take pictures with your computer devices.  
  • Embeddable
    You can embed a wall in blogs and other websites (How?).
  • Privacy 
    You are empowered to keep the wall(s) private by adding password lock or specific email addresses. You can also moderate posts, by requiring approval by one of the moderators before they show up on the wall for the other readers.
  • Exporting
    You can export your Walls to PDF, Excel, and CSV formats with a single click.
  • Customized URL
    Every wall has an unique URL that you can give out. You can now also customize the ending of your URL to your Wall (E.g. http://padlet.com/wall/myawesomewall) or your Domain URL (E.g. http://myawesomewall.com ).
  • Notifications
    You can get e-mail notifications on updates to your wall, or subscribe to them via RSS.
  • Design & Layouts
    You can easily spice up the backgrounds with all sorts of cool designs and images. You can change your layout to Stream to view group discussions more structured (linear chat like format, with time-stamps of when someone commented).

Check out Padlets user guide (Knowledge Base) to discover more.


FOR LEARNING?

What about Padlet for learning and teaching?

While you dont need brains to use Padlet, you might need to stretch your imagination to realize how easy and powerful this tool could be to empower and energize collaborative learning experiences. Here are some examples on how Padlet can be used for:
  • Ice breaker to get to know one another (Participants/Students upload photos of themselves and then write one or two sentences for others to get to know them better).  
  • Brainstorming ideas, problem-solving, decision-making, or solutions.
  • Q&A sessions before/during/after a lecture or class.
  • Open-ended (formative) question or reflection sessions, where students all share their answers on the Padlet wall;
  • Noticeboards or making course announcements.
  • Bookmarking and curating resources or video playlists. 
  • Group/Class/Community Discussions.
  • Adventure and travel maps (field trips). 
  • Developing a website. 
  • Etc.
Lets not stop there, why not explore Padlet as a potential tool for organizing a students e-portfolio.

Actually, if we stretch our imagination even further, we could perhaps use Padlet even for an entire class (or even course) from the lecture (or lesson) to the assignment (Full Article):
  1. Lesson/Lecture/Tutorial
    Researching, collecting and curating content for your lesson does not have to be a tiresome task across folders, sites, emails and links.
  2. Group Discussion
    Use Padlet for a group discussion before/during/after a lecture (or class).
  3. Feedback
    Your lecture is coming to an end and you want to take check the students’ understanding of the subject or topic.
  4. Assignments/Projects
    Students can work individually or as groups using Padlet. For example, each group sets up a wall that discusses or visualizes their project, which can later be made available to the other students when completed. You can even make it a competition!
Whether you want to use Padlet for everything in online learning is probably a bit extreme, but no doubt this tool can be used in many creative ways to engage learners and have some fun while learning takes place.


ALTERNATIVE TOOLS?

If you want an alternative tool to teach a class or share digital content with activities, I would probably recommend Edcanvas (for now), which provides more structure, control, features and even provides a quiz engine with reporting.

If you want a dedicated tool for collaborative bookmarking or social curation of online resources, I  would recommend Pinterest or Scoop.it instead. 

Though, if you want a simple and powerful tool to easily break the ice (of new group), brainstorm, share ideas and have some quick fun...Padlet is my tool to the rescue :)

Tuesday, March 3, 2015

Professor Lewin Inspires Us to Learn Physics Again! Video Lectures

  • MIT Audio/Video Courses
  • NYT Article - At 71, Physics Professor Is a Web Star
  • References - Stephen Downes & Tony Karrer
WHO?
Walter H. G. Lewin is currently a professor of Physics at MIT. He earned his Ph.D. in Nuclear Physics in 1965 at the Delft University of Technology in the Netherlands...more

WHAT?
Professor Lewin has long had a cult following at MIT, and now thanks to the Internet and initiatives like MITs OpenCourseWare (OCW), is part of a new generation of academic stars (or should we say Old) that are making their own mark in the online learning sphere without charge (beyond the classroom). Hopefully this form of entertainment or education will increasingly get more media attention, and more importantly increasingly grab the attention of the young (and old!) learning minds around the world. I suppose a few hours of Professor Lewins inspiring lectures could be spared in-between our usually blended dosage of online entertainment, fun and junk.

JUICE?
If you are looking for MIT Audio/Video courses in general, simply click here (and have fun learning from all these sometimes nutty but inspiring MIT professors). If you are eager to explore Professor Lewins video lectures, you can find dozens of them in the following three (3) courses:
  • Lewins MIT Physics 8.01 videos: Classical Mechanics
  • Lewins MIT Physics 8.02 videos: Electricity and Magnetism
  • Lewins MIT Physics 8.03 videos: Vibrations and Waves

If you are looking for a few of his video lectures to kick-start your inspiring learning journey, perhaps these four (4) videos will be a good start:

  • A Demonstration of Electrostatics
  • Trajectories of Objects in Freefall
  • How a Rocket Lifts Off
  • A Lecture on Pendulums


You will probably notice when watching his lectures that he uses unique and creative ways to engage his students (Yes that is him on the picture above doing his thing!). Although, he is already 71 years old, it does not seem to hold him back to demonstrate the wonders of physics, and occasionally he puts his life (and the students) at risk (or may seem so thanks to his great humour!). For example, in one of his lectures he rides a fire-extinguisher-propelled tricycle across his classroom to show how a rocket lifts off.

Now you may be wondering how long it takes him to prepare such a lecture? He said in the NYT interview that it takes him around 25 hours to prepare each new lecture, choreographing every detail and stripping out every extra sentence. “Clarity is the word,” he said.

Coming to think of it, all these free lectures found increasingly on the web (check Podcasts category on my blog for a long and useful list of video/audio lecture directories) are not only useful for those learning different knowledge domains and topics, but also critical for lecturers who want to improve their teaching, facilitating and lecturing skills. By spending time exploring and reflecting all these new academic super stars innovative and inspiring lecturing practices, we can pick up a few tricks here and there. If we follow Sam Waltons good old learning approach, we could pick up a trick or two from any lecturer (or any shop in his case!).

Lets face it, we live in global learning space, and students are increasingly going to be aware of all these great free video lectures within their learning domains. So, should we perhaps cancel our lectures (and only conduct tutorials) and ask them to watch these great lectures instead?

No doubt, we should link (URLs) our students to these great free video/audio lectures when relevant. Also, I believe we should also learn from these inspiring Professors (too!), and then put our own contextualized flavour and spice to our lectures (and tutorials), and engage our students in relevant discussions and activities.

Professor Lewin said, “Teaching is my life.” Is teaching your life? Do you have the passion and fire to spark! Do you have the ability and creativity to inspire? If your students are or become inspired to learn your subject, you dont need to teach them, they will learn on their own. Interestingly, they might also remember you for a lifetime for sparking them to life :)

April Fools Day Silly CVC Sentences A No Prep Game for the Smartboard!

Typically, the whole concept of April Fools Day goes right over my Kindergarten students heads!  People playing tricks on each other basically goes against all of the rules weve been working on.  Anyway... I finally thought of a way to celebrate April Fools Day with my Kinder kids... with a fun smartboard game!

My students love working on CVC sentences and I figured the addition of pictures to one of their favorite games couldnt hurt!  Im so excited that this game will work on their decoding and comprehension skills all at once... and I cant wait to see their faces when they read these crazy sentences on April Fools Day!

 April Fools Day Silly CVC Sentences (A No-Prep Game for the Smartboard!)

What silly things do you do to celebrate April Fools Day in the classroom?

How to Save a PowerPoint Slide as a Transparent Image!

I am so excited to write this post because it is my 100th post on my blog and my 20th Technology Tuesday post!  I never expected to write 100 posts in the five months Ive had this blog!  I really do enjoy it though!

Now, onto todays post... how to save a powerpoint slide with a transparent background!


This poll was a real nail biter!  I was really nervous it would end up being a tie!


Luckily, it wasnt a tie!  Im really excited to blog about this fantastic idea that Mercedes over at Surfing to Success gave to me!  She has a ton of technology tutorials on her blog also so you should definitely check it out!

Surfing to Success” style=

Now, onto the tutorial!



And of course, you can have those two cute star images for free!



To download this tutorial as a PDF, just click the button below.  I decided to host the files on Google Docs instead of TPT and hopefully Ill get the other posts up soon!

Note: This tutorial is hosted on Google Docs.  To save it from there, just open the file and click File > Download to save onto your computer!

For next weeks poll I had the hardest time picking what to add!  In my linky party below, the question came up as to how you add the HTML code to your blog when someone gives it to you.  Oops... I put the wrong thing on the poll!  I added how to make a collage of photos in any shape.  Ill add the HTML next week!  Be sure to vote for next week, and in the meantime, check out my linky party!

Back to School Jitters Linky Party

Monday, March 2, 2015

ZaidLearn Goes del icio us Takes a Break from Blogging!

  • Link to Zaidlearns del.icio.us Links
  • Digital Curator to the Stars & More on the Digital Curator (Jeff Cobb)
  • The Digital Curator in Your Future (Steve Rubel)

"...I do believe that Zaid Ali Algasoff is in the process of firmly establishing himself as the e-learning curator of Southeast Asia. His recent Any Free Hosted CMS or LMS? (Yes, Obama Says!) is just one piece of the accumulating evidence...(Source)" - Jeff Cobb

WOW! My self-actualizing e-Learning curator ego is reaching the top of Mount Everest! Hmm, what is a curator anyway?

CURATOR?
"A curator, in a cultural institution context, is a guardian or an overseer. According to Wikipedia, he/she "is a content specialist responsible for an institutions collections and their associated collections catalogs. The object of a curators concern necessarily involves tangible objects of some sort, whether it be inter alia artwork, collectibles, historic items or scientific collections (Source)."

"Rubel argues that, in order to manage the massive amounts of information now flowing across the Web, the world needs digital curators, “people who are selfless and willing to act as sherpas and guides. They’re identifiable subject matter experts who dive through mountains of digital information and distill it down to its most relevant, essential parts (Source).”

I can live with that! But to tell you the truth, if I am really the e-learning curator of Southeast Asia, we are in big trouble! First, most of my readers are not from Southeast Asia, but instead they are from United States, Canada, Europe, India, Australia and a few Brazilians that cant get enough of this blog.

Also, my messy informal learning repository adventure is not exactly the most efficient place to find what you are looking for. I suppose you might discover something juicy here, but it is probably more by accident, or through a Google search, rather than systematically searching ZaidLearn. Nothing wrong with that, But I believe now has come the time that I also embrace my left brain of organization, and by doing so, I will hopefully nurture the whole brain for efficient management of my learning discoveries, which will hopefully lead to more effective learning.

I really appreciate and respect Jeff Cobbs kind reflections, but I still have a green mile to travel, to live up to such a billing effectively. Though, I love the challenge and until other e-Learning curators do show up in Southeast Asia (or is known beyond!), I dont mind taking the lead. So, here is my plan to move on...

del.icio.us?
To be honest, I should have gone del.icio.us a long time back. Dont ask me why I didnt (Stubborn to unlearn!)? Instead you should explore and enjoy my growing juicy collection of del.icio.us links (+160 and growing fast!) , which will make it easier for readers to enjoy my arsenal of recommended free learning resources and tools. Here are my most prominent del.icio.us tags:

  • Favorite Tools
  • OER (Open Educational Resources)
  • OCW (OpenCourseWare)
  • Podcasts
  • ...more

Although, many of my del.icio.us learning resources perhaps should use multiple tags (e.g. MIT OCW, OER, Podcasts, etc.), I have tried as much as possible to use one appropriate tag for each resource, instead of giving them too many tags. I personally dont want to find the same learning resource in every tag (although it might correct!) while looking for stuff. Anyway, I am still learning the art of tagging, and hopefully it will improve as I embrace del.icio.us.

As I have been collecting juicy learning links (URLs) since 2001 (stored all over the place!), I have literally thousands of them to rediscover and add to del.icio.us. So, in the coming weeks I will be busy rediscovering, filtering (out!), and tagging my last seven years of learning, and creating my own little arsenal of del.icio.us learning resources and tools, which we all can enjoy.

A BREAK FROM BLOGGING?
In addition, I have decided to take a break from blogging for at least 2-3 weeks, so I can reflect (in peace!) what I have achieved and prepare for the second phase of ZaidLearn. Second phase?

I suppose anyone that has been reading my blog has probably been overwhelmed with all the learning resources and tools discussed and shared here. And to be honest, I am really getting bored simply talking about new resources and tools discovered, and believe that ZaidLearn needs to move on to focus more on what really matters in education. EFFECTIVE LEARNING!!!!!!

ZAIDLEARN 2.0
In the future, I will still share great resources and tools I discover, but that will del.icio.us take care of from now on. I suppose I will provide a weekly del.icio.us update on the juiciest stuff discovered.

So, what about the ZaidLearn blog? It will go on, but it will from the next post onwards (with the exception of weekly del.icio.us updates) focus on interesting topics and issues in relation to facilitating effective learning online. The posts will be short/long articles (500-2000 words) where I share my research, experiences, thoughts and ideas about learning (like I got much experience to share!). I predict that I will post 2-4 articles a month, meaning this blog will certainly not be as active as before, but it will hopefully be of better quality :).

My secret recipe (no longer!) for writing articles, will be roughly 4 days of research and reflection (in-between formal working activities), and then on the fifth day 1-4 hours of writing and editing, and Voila an article has been posted. I hope by using this formula, I can by year end (2008) compile these articles into an e-Book, which of course will be free to download (if anyone is interested!).

To put more pressure on myself (I love that!), I will challenge myself to write articles that are good enough to be published in the likes of Tomorrows Professor Blog (Stanford University) and New York Times (NYT). So, Rick Reis (Editor of Tomorrows Professor Blog) please consider my articles, although I am no professor (Need another 15 years for that one!). Anyway, all my articles will be published in ZaidLearn, and if they are really good, I am sure they will find their way to other interesting places, except peer reviewed journals. Why? I write with an unhealthy mix of emotion, logic, flavor, disruption and creativity beyond the scientific acceptance level of most peer reviewed journals.

Alright, enough! Have fun exploring my growing compilation of del.icio.us learning discoveries!

I WILL BE BACK! Soon! That is in 2-3 weeks time :)

CVC Words Uno Games!

Dont you just love to win things!? Its time for the 3rd day of my "Five Days of Giveaways!" Today, Ill be giving away both of these Uno games:



I loved the books and movies that everyone guessed as my favorite! This time, in order to win, you need to guess my favorite Christmas song! And leave your email address, of course!

Update:
Congratulations to Julie over at Primary Pointe for guessing correctly!  My favorite Christmas song is All I Want For Christmas is You by Mariah Carey! 

200 Follower Giveaway!

Wasnt it just the other week that I was having my 100 follower giveaway?  I am so excited to have reached 200 exactly three week after I reached 100!  Thank you everyone for following me!  Now, without further ado... here is the contest! (PS: I googled "without further adieu" on google to check my spelling and Grammar Girl told me it should be ado... I never knew!)


The winner will win all of the items listed in the picture above!  To check out each of the items, click the links below!

$5 Teachers Pay Teachers Gift Card
Enough said!  Given to both winners!

Complete Library Organization Pack
132 Labels to Organize Your Books!
Cat in the Hat Classroom Theme Pack
The picture will bring you to TPT, but check out my blog post to see the set in action, and grab a freebie!

Job Chart With Pictures
The font will make it work perfect in your room since it coordinates with the set above!


Now... are you ready to enter?  You have FIVE SIX chances to win!  Here they are!
  1. Follow my blog and TPT store - leave one comment
  2. Leave a comment on one of my free items on TPT - leave one comment telling me which item you commented on.
  3. Check out my other blog posts and comment on one of them - leave one comment telling me which post you commented on.
  4. Blog about this giveaway - leave TWO comments giving me the link to the blog post.
Updated 5/13/12 @ 11:35pm EST...
I just pinned this on Kindergarten Klub!  Repin this post for a 6th chance to enter!  Leave one comment with a link to your re-pin!
    Good luck!  This contest will end on Sunday, May 20, 2012 at 12:00 noon EST!

    Sunday, March 1, 2015

    MOOC Development Platforms

    Are you looking for an online platform to host and develop your MOOC or Massive Open Online Course(s)?


    MOOC DEVELOPMENT PLATFORMS

    Below is a growing list of all online platforms that can be used to develop and host MOOCs. They have been divided into various categories to make your MOOCified choice easier:

    • (E) = Elitist
      Only courses from World Class Universities/Organizations. For these MOOC platforms, you need to be World Class or associated with a top (top) University around the world that has signed an agreement to be partner with the non or for-profit organization running the MOOC platform (e.g. Coursera).
    • (D) = Do-It-Yourself
      These MOOC platforms empowers anyone to develop MOOCs. But you are still required usually to fulfill their learning design requirements before your MOOC course can be published (to the public and be searchable in their course database).
    • (U) = University/Organization Centric
      These MOOC platforms are designed to host MOOCs offered by particular Universities/Organizations. Unless you are working for that University/organization or group of Universities/Organizations, you will not be able to use their platform. 

    THE LIST

    MOOC Development Platforms
    View more lists from Zaid Ali Alsagoff

    Please vote up your favorites MOOC platforms. Also, please indicate whether you use them and whether you are an expert in using them (for MOOC or online course development).



    Looking for a comprehensive list of MOOC specific courses (to learn and explore)? 

    CLICK HERE to access the MOOC list! 

    Stay tuned for the ultimate (10 - 20 page) guidelines and tips to create sizzling MOOCs with flavor...Coming soon :)  

    ug Word Family Computer Smartboard Lesson

    Its that time again... time for another Prezi!  This is our second to last word family this year, so there will only be one more after this one (the -ay word family).  Click the picture to take you there!


    If you havent seen my other Prezis yet, click the picture below to check them out!



    Got A New e Learning Job! Got Any Tips to Share


    NEW LEARNING ADVENTURE

    On June 15th (2009), I will embark on another e-learning adventure, and become the new e-Learning Manager at the International Medical University (IMU). I am looking forward to working with educators in the fields of Medicine, Dentistry, Pharmacy, Pharmaceutical Chemistry, Nursing, Medical Biotechnology, Nutrition & Dietetics, Biomedical Science and Psychology (my undergraduate roots! Cool!).

    I am dreaming of conceptualizing and nurturing with IMU educators electrifying and sizzling e-learning environments (I suppose this only makes sense to The Rock!). In other words, conceptualizing and nurturing e-learning environments that are:
    • Relevant
    • Engaging
    • Fun
    • Interactive
    • Collaborative

    That would be awesome! However, having experienced both sides of the learning continuum (Disaster to Success) during my career as an e-learning professional, I know for sure it wont be easy. But you know what, I am looking forward to the challenge, and hopefully it works out!

    Interestingly, they are currently using Moodle as their main online teaching and learning platform, so that is great news. In the past, I have experienced a customized in-house developed e-learning platform (no so bad!), a customized commercial one (a total disaster!), and Moodle, which I promoted as an alternative learning space at UNITAR.

    Whatever, e-learning platform or LMS (Learning Management System) one is using today, lets face it; learning will increasingly take place outside the LMS, in the forms of wikis, blogs, micro-blogs, virtual worlds, video channels (e.g. YouTube), social bookmarking, social networking, etc. Although, e-learning platforms (e.g. Moodle and Blackboard) often have such features and tools, they are usually not up to par with the specialized free learning tools available. But thanks to RSS and integration modules the information flow can still easily be captured and shared in the big old LMS. If it cant, then it better soon, or adios amigo! I suppose LMS will still be around for a few more years for student/course management, tracking, assessment, and some discussions, but I suppose most of the real learning will increasingly take place beyond it.

    What about SCORM? That alien should be transferred back to the US military. Unless you are buying off-the-shelf courseware that has assessment you want to track, or you want to sell your self-developed courseware, it is seriously a disaster. I suppose in the corporate sector (where it is often needed for tracking purposes) one still mumbles about it, but in the University space not many learning professionals really talk about it anymore (it is there, but nobody cares! Relevant today?). Well, we have SCORM 2004, which really indicates the year that it stopped evolving. Reusable, Accessible, Interoperable, and Durable! What a joke, if you know what I mean :)


    ANY TIPS?
    I know that there are many exceptional learning professionals and educators that are reading (scanning or browsing) this blog, and it would be wonderful if some of you came (out of the passive learning mode) and shared with us some tips on e-learning in the medical fields (or other fields for that sake!), especially in terms of:
    • Online Facilitation
    • Content Development
    • Open Educational Resources
    • e-Learning Platform (features and tools to use?)
    • e-Learning 2.0 (any stories to share?)
    • Etc.
    If you feel uncomfortable sharing in the comments section, I would truly appreciate any suggestions, or tips through other means, such as Twitter and e-mail.

    Besides working on a few prototype courseware for John Hopkins University (Pediatric Sedation and Pain Management) in 2001, I have to admit I have a lot to learn about the medical fields. However, I am seriously looking forward to this new e-learning adventure, and hopefully my passion, knowledge, skills, and experience will assist in energizing IMU forward with e-learning that sizzles and electrifies (translation above!). And with your advice and tips, I am sure the road to success will be much smoother. Even a Good Luck note, would be appreciated. Thanks :)

    P.S. I suppose my blog posts will be shorter and fewer in the comings weeks. IMU here I come :)

    How to Embed Fonts in a Document on a PC!

    Here we are again... its Technology Tuesday!  The winner of this weeks poll was How to Embed Fonts in Word and Powerpoint!


    More than 2/3 of you voted for this option in the poll!


    Unfortunately this is currently not possible to do on a Mac (unless you save as a PDF), but I included directions for how to do it on a PC and will keep my eye out for an update on the Macs that allow for it to happen!  Here are the directions:


    You can download this tutorial as a PDF by clicking this picture!
    Note: This tutorial is hosted on Google Docs.  To save it from there, just open the file and click File > Download to save onto your computer!

    To grab a freebie I posted with an embedded font, click the picture below!


    I have had so many requests come in on the "Technology Tuesday Request" above... thank you everyone!  Im going to try to knock out as many of these requests as I can!  For next weeks poll, Ill add one thats been requested by a few people... how to add a form to your website (just like the Technology Tuesday Request form!) I cant wait to see what you vote for!