Wednesday, March 11, 2015
More ways for apps to write to Drive
Today we’re introducing two new ways for apps to build even richer integrations with Drive: app data folders and custom properties.
In order to run smoothly, your app may depend on data it stores in Drive. But occasionally, users may accidentally move or delete the very file or folder your app needs to function. The app data folder is a special folder in Drive that can only be accessed by your app. The app folder’s content is hidden from the user and from other apps, making it ideal for storing configuration files, app state data, or any other files that the user should not modify.
Although users cannot see individual files in the app data folder, they are able to see how much app data your app is using and clear that data in the Manage Apps dialog.

Apps can also now add custom properties to any Drive file. The new properties collection gives your app the power to create searchable fields that are private to your app or shared across apps. For example, a classroom app could keep track of the grade for a document or a project management app could keep track of the current status of a document going through a review process.
To learn more check out the technical documentation for both app data folders and custom properties, and if you have questions don’t hesitate to post on StackOverflow.
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. |
Freemium model for enterprise software
The Freemium business model is normal for consumer applications, but can it work for enterprise software? Freemium usually means a free service with an "up sell" to paid premium subscriptions. Examples include Skype, LinkedIn, Flickr, Ancestry.com, Typepad, Dropbox, and many others. Freemium differs from Free Trial in that a free trial is the fully functional product but only for a limited time. Freemium is always free, but you can purchase additional features or service for a premium price.
Freemium business models usually involve a Free service, sometimes time limited or feature limited, supported by advertising. The ads rarely cover costs. The goal is to convert these free users to paid subscriptions. Most consumer services start with a $10 per user per month subscription and scale up to $20 or $50 per month based on a small, medium, large usage scale.
Enterprise software is also using the Freemium model, sometimes with higher prices commensurate with the power and functionality of the product. They all have slightly different measurements and cut-off points, but most have some notion of small, medium, large.
Most companies see a 1.5% to 5% conversion rates, with most of them averaging around 3%. That doesnt sound like much but they are reaching tens of thousands to hundreds of thousands of users...sometimes millions.
Here is some math. 100,000 free users convert to 3,000 paid users. If they pay $50 per user per month, that is $150K a month or $1.8M per year. That is an excellent revenue stream for small startups that typically have 3 to 5 employees. And, it is an annuity stream that continues to grow every year. By the 3rd or 4th year these small companies can be generating $5M to $10M a year, still with less than 10 employees. Most of these small companies dont take Venture Capital so they own the whole company. It is a pretty good cash flow business.
Recently at Google IO I moderated an all-star panel of VCs on the subject of Freemium in the enterprise.
Making Freemium work - converting free users to paying customers - Venture Capitalists, Brad Feld (Foundry Group), Dave McClure (500 Startups), Jeff Clavier (SoftTech VC), Matt Holleran (Emergence Capital) and Joe Kraus (Google Ventures) discussed strategies for building free products that can be upgraded to paid versions.
Some key points from the panel;
- Your initial thoughts about how much customers will pay, and how much they will pay, is probably wrong
- Start collecting usage statistics from day one, even if you dont have time to analyze them. These stats will help you understand which features customers really use, and what they are likely to pay for.
- Customers tend to optimize for "least surprise" so they tend to purchase a service level one above what they think they will need. Think cell phone pricing models.
- Gmail Enterprise is a good example of an enterprise Freemium product based on usage limits. The first 50 users are free, but convert to paid subscription over that.
- Freemium works best where there is a "network effect" or where more free users contributing content or data makes the service more valuable.
- Put your business model in beta at the same time you put your product in beta. Test several business model scenarios to see what works best.
- Consumers dont pay for additional features, turning off advertisements, analytics, etc...but businesses may be very happy to pay for these things
- Google Apps Marketplace is a great channel to get your product to Google Apps business customers.
Watch the video for more details and insight. This group of VCs has built lots of companies based on the Freemium business model. They have some great insights.
Posted by Don Dodge, Google Apps Marketplace Team
A One Two Punch for Getting Even More out of Google Apps APIs
FlashPanel, a leading enterprise-grade security and management application for Google Apps, makes use of many Google Apps APIs. Each API comes with its own set of rate-limiting quotas, network traffic behavior and response conditions. The challenge we face is to provide our customers with a stable, consistent experience despite these API behavior differences. Fortunately, Google has provided two simple, yet powerful tools to greatly increase our success rate and reliability.
Controlling Throttle Rates with Guava’s RateLimiter
Google Apps APIs operate with quota rates per second or per day. As such, the FlashPanel development team’s objective is to minimize total operation time of a parallelized set of API-intensive processes while avoiding running into Google’s API quota limits. To accomplish this, we can very easily set up a thread-safe RateLimiter for a specific rate per second for each rate restricted API:
final RateLimiter driveApiRateLimiter = RateLimiter.create(QUOTA_RATE_PER_SECOND);
The Guava RateLimiter allows us to attempt to acquire a permit based on the configured rate per second, block until available, and then take it when available, allowing execution.
To use it within the context of a method, we simply reference the rate limiter before making the API call:
public Result performDriveApiCall(driveApiRateLimiter, otherParams){}
driveApiRateLimiter.acquire(); // blocks according to rate
// make API call...
This provides us with a very easy solution for rate limiting parallelized calls to the same APIs.
Reducing Impact of Network Traffic Issues Through Configured Backoffs
Occasionally, we experience additional network traffic issues despite enforcing rate limits. Google suggests that API clients use an exponential backoff strategy to handle this variety of error response. Typically this category of network issue resolves itself on its own after fractions of a second, but occasionally more time is needed. All we need to do to receive a successful API response is to simply retry the call some number of times, with the interval of time between retries growing exponentially.
Again, Google has made this easy through the Google HTTP Client for Java library’s ExponentialBackOff builder. This class allows us to configure the initial retry time interval, the exponential multiplier, the maximum total time to attempt to retry, and the maximum total time between retries. For example, we could configure a retry to span five minutes, growing with a factor of two, starting at a one second interval, and growing up to a maximum of one minute between retries. An API call with this configuration would retry with the following pattern in terms of seconds between retries:
1, 2, 4, 8, 16, 32, 60, 60, 60
If after this last retry, the API call still was not successful, the failed http response is returned. The code to configure such a strategy using the ExponentialBackOff.Builder reads as follows:
ExponentialBackOff backoff = new ExponentialBackOff.Builder()
.setInitialIntervalMillis(ONE_SECOND)
.setMultiplier(2.0)
.setMaxIntervalMillis(ONE_MINUTE)
.setMaxElapsedTimeMillis(FIVE_MINUTES)
.build();
One potential “gotcha” that we’ve seen is if we accidentally slam a particular API with many simultaneous API calls. In this event, not only would each of these API calls fail, but they would also schedule their retry strategy to occur simultaneously. All subsequent retries would end up firing simultaneously, causing the API calls to continue to fail due to excess per second volumes. The ExponentialBackoff class accounts for this by including a randomization factor within our retry logic that allows us to have each simultaneous API call stagger at different intervals.
For example, using our previous backoff but now with randomization, one API call may retry with these intervals:
1.04, 1.9, 4.23, 7.8, etc.
While a second API call would retry with something like these intervals:
.98, 2.04, 4.1, 8.15, etc.
With this randomization, we avoid API call sequencing collision, mitigating our chances of encountering quota related errors. To simply add this type of randomization, we append to our builder:
builder.setRandomizationFactor(RANDOMIZATION_FACTOR);
Once we have our exponential backoff strategy configured, the Google HTTP Client for Java library allows us to instantiate and assign an HttpBackOffUnsuccessfulResponseHandler to an HttpRequest as part of the request’s initialization:
private HttpBackOffUnsuccessfulResponseHandler handler = new HttpBackOffUnsuccessfulResponseHandler(backoff);
public void initialize(HttpRequest request){
request.setUnsuccessfulResponseHandler(handler);
}
Final Thoughts
By restricting our API calls using Google Guava’s easy-to-use RateLimiter, and by employing an exponential backoff strategy using the Google HTTP Client for Java library’s ExponentialBackOff, we are able to significantly reduce the amount of network traffic errors received by our Google Apps API calls, improving FlashPanel’s reliability and the overall user experience.
Steve is Senior Architect at BetterCloud, the makers of FlashPanel, the number one security and management application for Google Apps. Follow BetterCloud on Google+ at plus.google.com/+Bettercloud.
Posted by Greg Knoke, Googler
Using Google Document List APIs to build Memeo Connect for Google Docs

Google Documents List API https://docs.google.com/feeds/default/private/full?convert=false |
Google Data Objective-C client library** NSURL *uploadURL = [[mDocListFeed postLink] URL]; GDataQueryDocs *uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL]; [uploadQuery setShouldConvertUpload:NO]; |
Google Data .NET client library string uploadURL = DocumentsListQuery.documentsBaseUri + "?convert=false"; docService.StreamSend(new Uri(uploadURL), fileStreamHandle, GDataRequestType.Insert, contentType, docTitle); |
Google Documents List API http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#ResumableUpload Resumable post link: resumable-create-media" type="application/atom+xml" href="https://docs.google.com/feeds/upload/create-session/default/private/full"/> Request: POST /feeds/upload/create-session/default/private/full HTTP/1.1 Host: docs.google.com GData-Version: 3.0 Authorization: Content-Length: 0 Content-Type: application/pdf Slug: MyTitle X-Upload-Content-Type: application/pdf X-Upload-Content-Length: 1234567 Resuming: POST Host: docs.google.com Content-Length: 100000 Content-Type: application/pdf Content-Range: bytes 0-99999/1234567 |
Google Data Objective-C client library** Resumable uploads are automatically enabled when switching to the uploadLink URL NSURL *uploadURL = [[mDocListFeed uploadLink] URL]; GDataQueryDocs * uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL]; Pausing and resuming uploads is also made easy. [mUploadTicket pauseUpload]; [mUploadTicket resumeUpload]; |
Google Data .NET client library ResumableUploader resumableUploader = new ResumableUploader(); if (newFile) resumableUploader.Insert(authentication, docEntry); else if (partialFile) resumableUploader.Resume(authentication, resumeUri, httpMethod, fileStream, cotentType); else if (updateExistingFile) resumableUploader.Update(authentication, docEntry); |
NSURL *uploadURL = [[mDocListFeed postLink] URL]; GDataQueryDocs *uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL]; [uploadQuery addCustomParameterWithName:@"convert" value:@"false"]; |
Tuesday, March 10, 2015
Advanced security for Google Drive for Work
Last month we announced Google Drive for Work, which includes advanced Drive auditing to give organizations control, security and visibility into how files are shared. This new security feature helps companies and IT managers protect confidential information and gain insights into how their employees work.
Drive audit helps IT admins view activity on documents, such as uploading and downloading files, renaming files, editing and commenting, and sharing with others. Filters make it easy to sort and find details like IP address, date range, document title and owner’s email address. To make advanced auditing reports easier to manage, admins can set up alerts for important events like files being shared outside the organization.
To help organizations derive even more value from Drive for Work, we’ve been working with partners to give you even more capabilities through the Drive Audit API:
- Backupify protects your Google Apps data through secure, automatic, daily backup allowing IT users to easily search and restore files with advanced administrative features, safeguarding your business from data loss caused by user errors, malicious deletions, hackers, and app errors. (website, blogpost)
- BetterCloud, through their flagship cloud management and security tool, FlashPanel, has enhanced their offering through the Audit API to provide additional controls and insight. (website, blogpost)
- CloudLock, who provides a pure-cloud Data Loss Prevention (DLP) solution for SaaS applications, has released a new version of CloudLock for Google Drive, leveraging the new Google Drive audit APIs, to enable large organizations to extend their enterprise security controls to the cloud. (website, blogpost)
- SkyHigh for Google Drive delivers Data Loss Prevention (DLP), mobile-to-cloud support, application auditing, data discovery, and anomaly detection without changing the Google Drive experience users love. (website, blogpost)
Google is committed to enabling organizations to be successful by leveraging a large community of ISVs. One of the areas we constantly invest in is our APIs, that allow customers and ISVs to extend the functionality of the Google Apps platform. If you’d like to join our ISV community, check out the developers.google.com site. For a list of ISVs supporting Google Apps, please visit the Google Apps Marketplace.
Google Storage service for Developers
Using this RESTful API, developers can easily connect their applications to fast, reliable storage replicated across several US data centers. It is highly scalable - supporting read-after-write data consistency, objects of hundreds of gigabytes in size per request, and a domain-scoped namespace. In addition, developers can manage their storage from a web-based interface and use GSUtil, an open-source command-line tool and library.
Google Storage is designed for sharing and collaboration, with built-in authentication services and access controls based on Google Accounts. This makes it easy to control which users have access to what information in your internal and external applications. Right now Google Storage only supports standard Google Accounts, but we’re working hard to add support for Google Apps accounts.
We are introducing Google Storage for Developers to a limited number of developers at this time. During the preview, each developer will receive up to 100GB of data storage and 300GB monthly bandwidth at no charge. To learn more and sign up for the waiting list, please visit our website.
We’ll be demoing the service at Google I/O in our session and the Developer Sandbox. We’re looking forward to meeting those of you who are attending.
by Jessie Jiang, Google Storage for Developers Team
Sunday, March 8, 2015
Build add ons for Google Docs and Sheets
Weve just announced Google Docs and Sheets add-ons — new tools created by developers like you that give Google users even more features in their documents and spreadsheets. Joining the launch are more than 60 add-ons that partners have built using Apps Script. Now, were opening up the platform in a developer-preview phase. If you have a cool idea for Docs and Sheets users, wed love to publish your code in the add-on store and get it in front of millions of users.
To browse through add-ons for Docs and Sheets, select Get add-ons in the Add-ons menu of any document or spreadsheet. (Add-ons for spreadsheets are only available in the new Google Sheets).

Under the hood
Docs and Sheets add-ons are powered by Google Apps Script, a server-side JavaScript platform that requires zero setup. Even though add-ons are in developer preview right now, the tools and APIs are available to everyone. The only restriction is on final publication to the store.
Once you have a great working prototype in Docs or Sheets, please apply to publish. Scripts that are distributed as add-ons gain a host of benefits:
- Better discovery: Apps Script has long been popular among programmers and other power users, but difficult for non-technical users to find and install. Add-ons let you distribute your code through a polished storefront—as well as direct links and even Google search results.
- Sharing: When two people collaborate on a document and one of them uses an add-on, it appears in the Add-ons menu for both to see. Similarly, once you get an add-on from the store, it appears in the menu in every document you create or open, although your collaborators will only see it in documents where you use it. For more info on this sharing model, see the guide to the add-on authorization lifecycle.
- Automatic updates: When you republish an add-on, the update pushes out automatically to all your users. Theres no more hounding people to switch to the latest version.
- Share functionality without sharing code: Unlike regular Apps Script projects, add-ons dont expose your source code for all to see. Thats reassuring both to less-technical users and to the keepers of your codebases secrets.
- Enterprise features: If your company has its own Google Apps domain, you can publish add-ons restricted just to your employees. This private distribution channel is a great way for organizations that run on Google Apps to solve their own unique problems.
Beautiful, professional appearance
Thanks to hard work from our developer partners, the add-ons in the store look and feel just like native features of Google Docs and Sheets. Were providing a couple of new resources to help all developers achieve the same visual quality: a CSS package that applies standard Google styling to typography, buttons, and other form elements, and a UI style guide that provides great guidance on designing a Googley user experience.
A replacement for the script gallery
Add-ons are available in the new version of Google Sheets as a replacement for the older versions script gallery. If you have a popular script in the old gallery, nows a great time to upgrade it to newer technology.
We cant wait to see the new uses youll dream up for add-ons, and were looking forward to your feedback on Google+ and questions on Stack Overflow. Better yet, if youre free at noon Eastern time this Friday, join us live on YouTube for a special add-on-centric episode of Apps Unscripted.
Dan Lazin profile | twitter Dan is a technical writer on the Developer Relations team for Google Apps Script. Before joining Google, he worked as video-game designer and newspaper reporter. He has bicycled through 17 countries. |
Wednesday, March 4, 2015
Chinese New Year Interactive E Book for Smartboard
With the Chinese New Year (a.k.a. the Lunar New Year or Spring Festival) coming up this Friday, January 31, I figured Id give them a look and the history and traditions of the holiday. I learned so much while I was researching to write this book and I cant wait to share it with my students this week!




This Smart Notebook file is sure to get your students interested in the Lunar New Year! I hope this helps to inspire all of the students to learn more about other cultures!
Tuesday, March 3, 2015
PowerPoint For Techies How much is too much By Kathy Jacobs
Link to article and Kathy Jacobs home page
"One person who presents regularly always tries to fit ?25 pounds? into a 5 pound bag.? How do you prevent this from happening with your presentations? Kathy Jacobs suggest the following six tips (read the article for details):
- Figure out what the audience needs to know, not what you want to say
- Design from summary to detail
- Hide the details
- Create FAQ slides
- Nest information
- Tell them where to find more information"
Monday, March 2, 2015
Giveaway of Smartboard Promethean Board Games for CVCe Words!






Now for the giveaway... Ive been hard at work making homemade spinach ravioli. I made four trays like the one below (and less than last year!) Guess how many I made this year! Whoever has the closest guess to how many I made by 10:00 tomorrow morning wins!

wwwtools for Education 5 star site
Link to site
"wwwtools is designed to keep you informed and to save valuable time in tracking down information and resources on the World Wide Web. Each article is on a particular topic or issue related to Web-based teaching and learning. The articles take a skilled researcher between 10 and 20 hours to research and prepare. Many of the topics covered are suggested by our readers--if youre curious about a particular subject or issue send a "research" request to the contact below.Whenever a new article is added to the database you will be informed by email. You can opt-out of the email list at any time. Articles remain on this data base - however only paid or sponsored subscribers can view archived articles older than 3 months ."
Absolutely a great site for people involved in education. Teachers, students and e-learning researchers are going to love this site, which include all sorts of articles from digital libraries to music in education. However, accessing articles older than 3 months would require you to pay (stick to Latest Articles), but besides that it is a great site. This site needs to be bookmarked in your favorites, it is simply Yummi!
Sunday, March 1, 2015
Planning for Neomillennial Learning Styles
Link to article (By Chris Dede)
"Shifts in students? learning style will prompt a shift to active construction of knowledge through mediated immersion"
Rapid advances in information technology are reshaping the learning styles of many students in higher education...Over the next decade, three complementary interfaces to information technology will shape how people learn:
- The familiar world to the desktop interface, providing access to distant experts and archives and enabling collaborations, mentoring relationships, and virtual communities of practice. This interface is evolving through initiatives such as Internet2.
- Alice-in-Wonderland multiuser virtual environment (MUVE) interfaces, in which participants? avatars interact with computer-based agents and digital artifacts in virtual contexts. The initial stages of studies on shared virtual environments are characterized by advances in Internet games and work in virtual reality.
- Interfaces for ubiquitous computing, in which mobile wireless devices infuse virtual resources as we move through the real world. The early stages of augmented reality interfaces are characterized by research on the role of smart objects and intelligent contexts in learning and doing.
Based on mediated immersion, these emerging learning styles include:
- Fluency in multiple media and in simulation-based virtual settings Communal learning involving diverse, tacit, situated experience, with knowledge distributed across a community and a context as well as within an individual
- A balance among experiential learning, guided mentoring, and collective reflection
- Expression through nonlinear, associational webs of representations
- Co-design of learning experiences personalized to individual needs and preferences
Many faculty will find such a shift in instruction difficult, but through professional development they can accommodate neomillennial learning styles to continue teaching effectively as the nature of students evolves..."
Yes, this is another explosive article promoting multiuser virtual environments (MUVE) in education, which we should digest to the fullest. Utilizing MUVE can facilitate a more experiential, interactive, and dynamic e-learning environment, enabling us to interact and collectively learn and construct knowledge with people (avatars) or experts from every corner of the earth. For me, I would first like to discuss some issues with Chris Dede (author of this article) or his avatar, so I can learn from his research about MUVE (beyond this article). Then I will go after Bill Gates and ask him point-blank, "why dont you participate more in the open source evolution, and make your Microsoft Office products open source and free (at least to all schools, colleges, and universities around the world), etc.
Yes, I am already getting immersed! Lets research this area collectively and make Malaysian higher education truely immersive!
Saturday, February 28, 2015
Crash Course Social Media Web 2 0 for Learning
Social Media & Web 2.0 for Learning (2nd Edition)
WELCOME!
Site (Workshop) Contents
- RSS & Curation
- Blogging
- Wikis
- OER/OCW
- Other Tools
Friday, February 27, 2015
Super Cute White Frames for Your TPT Products! Flash Giveaway!
I finally decided to put together all of my white bracket/bubbly frames and make a set out of them! Check them out below! There are 38 different frames, each with and without a border for 76 total frames!!! Theyre normally $8 but the first person to guess which state Im going to be traveling to this summer will win them for free!
If youre not the winner, you can still grab the set while its on sale for tonight only for $6 instead of $8!

Happy guessing and be sure to leave your email address!
Update 9:15pm:
Congratulations to Liann at A Grade One Nut and Her Squirrelly Crew ! Im heading to Alaska this summer on a cruise with the hubby for our anniversary: 10 years since we started dating and two years since we got married!

Thanks to everyone else for all of your guesses! As for everyone who asked about making a tutorial: I have considered it but I made the frames in Adobe Illustrator which is a pretty expensive program. Ive been trying to keep my tutorials to free programs and programs that a lot of people have. I may write it up one day, but unfortunately it wont be in the near future. Sorry! :(
Wednesday, February 25, 2015
Twitter for Learning at Unirazak!
![]() |
*Poster: Visualized by Dr. Dewi Binti Amat Sapuan |
WORKSHOP
LEARNING OUTCOMES
- Use Twitter to facilitate learning and teaching.
- Create unique Twitter #hashtags for programmes, courses and events.
- Use Twitter apps to engage students in the classroom (and beyond).
SLIDES
Hands-on:
- Twitter Hands-on Activity sheet (Not 100% updated)
Twitter rocks! Can you rock with Twitter? :)
Saturday, February 14, 2015
Get CyberGhost Premium Free for 3 Months
CyberGhost Premium VPN FREE for 3 Months
Hello guys, well I just came across a great offer by CyberGhost 5, they are giving away 3 Months Premium membership for FREE. The deal lasts for just 13 days or till the number of accounts gets over. So hurry up and Get a VPN for yourself absolutely FREE.![]() |
Exclusive: Get CyberGhost Premium VPN FREE for 3 Months |
Get CyberGhost Premium VPN FREE for 3 Months With this special edition of ~CyberGhost 5 you will be getting all the premium features for 3 months absolutely free. The edition includes, unlimited traffic volume, bandwidth, access to all premium servers, full premium support and a special additional protection for mobile devices.

How to Activate the Key
1. Firstly you need a key, Click HERE to get your VPN KEY.
2. You will be getting a confirmation mail in your inbox, just follow the link in the mail.
3. The link will take you to your key, now to use your key all you have to do is just Download CyberGhost 5
4. Open up CyberGhost and click on "Activate key" and enter the key you got.
5. Voila!! You are done, your CyberGhost 5 is activated with all the premium features.
Features of CyberGhost 5
- Fully Encrypted Internet
- Unlimited Bandwidth
- Live Server Update
- No Waiting Times
- Anti Fingerprinting System

- Well to be honest if you want to surf anonymously then CyberGhost VPN (Virtual Private Network) must be your first choice, they completely hide your IP and wont even keep their user logs. So this way our identity is also a mystery to them.
- One more top class offer they provide is, that you can open up any restricted or blocked website which may be blocked in your country due to security or political issues.
- The best feature of all is that it is safe and installation is very easy and takes no time, moreover it supports all platforms.