Pages

Showing posts with label list. Show all posts
Showing posts with label list. Show all posts

Wednesday, March 11, 2015

Using Google Document List APIs to build Memeo Connect for Google Docs


Building Memeo Connect™ for Google Docs

Editors Note: This post was written by our partner Memeo, a digital media management company. Memeo Connect™ for Google Docs enhances Google Docs capabilities. We invited Memeo to share their experiences building an application on top of Google Apps utilizing some of our APIs. Other partners will share their experiences in future posts. 

Hi Im Matthew Tonkin, Mac Applications Architect at Memeo.  Google has been a great partner in helping us bring Memeo Connect to market.  Were excited about the new additions to the Google Documents List APIs and the products weve been working on for them.

Google Apps  is a great way for businesses to share and collaborate on documents, but more importantly, it has allowed businesses to move much of their office and IT infrastructure online for dramatic operating cost reductions.  Until recently, Google Docs users had no way of uploading, storing, syncing and sharing files of any type.  The big news is that Google Docs now supports all file types and there are Documents List APIs to prove it.  January saw the release of the updated Documents List API with this new arbitrary file support, but no desktop client software to manage file syncing between the desktop and the cloud.  Memeo Connect for Google Apps is that missing link.  Memeo set out to bridge Google Docs cloud storage with desktop software.  A simple goal that has big implications for where users store documents and how they are shared.  

The end result is a desktop application that is fully supported by Google Docs for online storage, synchronization, sharing and data management. With Memeo Connect, instant access to your important documents while online or offline is now very possible. Memeo Connect is available on both Windows and Mac platforms.







Our timeline for Memeo Connect was impossibly short due to Google’s aggressive timeline for launch. How did we do it?  Apart from the obvious late nights, junk food and beer, we received help from Google to take this product from concept to reality.  Some of it came in the form of new APIs, some directly from the Documents List API team, some from the client libraries and some from the discussion groups.



1. Keeping native file formats

Google Docs now supports keeping files in their native format.  Previously Microsoft Office files and images were converted to the online Google Document formats, removing much of the application specific formatting options used in the Office file formats.  However, its now possible to upload Microsoft Office files and images without conversion, meaning users can keep all of their custom file formatting.

You can get all of this with a simple parameter in the post URL when uploading the new document.

Google Documents List API

https://docs.google.com/feeds/default/private/full?convert=false










If like us, you use the client libraries, then its just as easy.

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); 


The new features dont just handle Microsoft Office files.  Any file type is supported with no additional parameters or changes to client code, however the support for these features is only available through the Google Documents List API for users that have a Premier account.



2. Bigger file size limits and resumable uploads

Google Docs now supports file uploads up to 1GB and is resumable, so failed or paused uploads can pick up where they left off.

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 HTTP/1.1
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);

** Objective-C code samples have been taken from the Docs Sample code



3. Client Libraries for Mac & Windows

The Google Documents List API provides all of the backend server functionality but isnt ideal for rapid client application development.  As client developers, we prefer the efficiencies provided by a wrapper in our native client languages.  This is where the client libraries for Objective-C and .NET allowed us to shorten our application development time significantly.  Without the client libraries, we simply would not have been able to achieve our goals for Memeo Connect in the time we had available.

Many of the Documents List API features we worked with in our early development were not available through the client libraries.  This was initially quite daunting because of the risk that we would have to drop down to raw server calls and miss out on the efficiencies we gained through using the client libraries.  However as we got to know the client libraries better, we found they were written flexibly enough that we never had to do that - there was always a way to bend them enough to get what we needed.  A sign of great design by their architects.

For example uploading without conversion was simple in the Objective-C client library even before it was officially updated to support it.

NSURL *uploadURL = [[mDocListFeed postLink] URL];
GDataQueryDocs *uploadQuery = [GDataQueryDocs queryWithFeedURL:uploadURL];
[uploadQuery addCustomParameterWithName:@"convert" value:@"false"];



4. Support from Google

The Documents List API team were of enormous help throughout the course of this project.  As with most of Googles public APIs, theres always an avenue to ask questions about how to best use the technology, pursue bugs or request new features.  The new Google Apps Discussion Groups are simply the best way to get an answer quickly and is invaluable in getting past whatever is blocking your progress. Google Developer Relations people monitor the discussion groups and frequently answer questions, link to other relevant resources, and provide code samples.


Whats next?

We had a sizable list of things we really wanted to do with Memeo Connect 1.0 and some of that had to wait for 1.x or 2.0.  Were looking forward to continuing to work with Google and file as many feature requests as we can to make some of these new features a reality.  Anyone can file a feature request for Google Apps APIs and I can assure you they all get considered.

In future releases well be adding more support for direct file system integration, better tools to manage sharing and were really excited about supporting new devices.  Get ready to see more Google Docs in more places.
Read more »

Monday, March 9, 2015

Documents List API now supports more file types

We are happy to announce that we have recently launched support for creating and managing revisions for arbitrary file types in the Documents List API. Prior to this, the Documents List API only allowed developers to create and query revisions of Google Docs files.

This opens up the API for a number of exciting use cases. For example, a developer could use Google Docs as the cloud-based back-end for a content-management system with versioning. Another possibility would be for developers to provide file history or file playback in their sync clients.

Please note, however, that while all users can use the API to query and manage revisions, currently only Google Apps Premier users can upload arbitrary file types via the API. All users are still able to upload arbitrary files types via the Google Docs web interface.

For more information on how to use this new feature, please see the updated release notes and updated documentation.

Want to weigh in on this topic? Discuss on Buzz

Read more »

List of Agile practices

I read an interesting list of agile practices at Naresh Jains blog: Explosion of Agile Practices.  I think there is a lot of overlap in his list, but it made me re-visit what I think the core list of lean and agile practices should be.  My list is below in no particular order.  Each item can be expanded - for example, Technical Excellence implies TDD, simple design, following SOLID principles, etc.

1. Daily Stand-ups
2. Visual Project Management
3. Customer Accessibility
4. Technical Excellence
5. Frequent Delivery
6. Frequent Retrospectives
7. Continuous Improvement
8. Continuous Integration
9. Co-located teams
10. Iteration Planning
11. Team Estimating
12. Acceptance Tests (and automation of those tests)
13. User Stories
14. Self Organized Teams
16. Iteration Demos

Update 8/15/2010:
- And one more... Deliver Value!
Read more »

Wednesday, February 25, 2015

Summer Bucket List

My summer doesnt start for two more months... but that doesnt mean its too early to join up on the summer bucket list party!





Two summers ago, I spent all summer doing house projects.  Last year, I had big plans to get more projects done around here, but after the wedding/honeymoon I didnt quite have the motivation!  This year, Im going to focus on getting a lot of house projects done!

First, let me talk about the teacher-type projects:


Blog To Do List #1
Post 1-2 freebies every week on my blog!


Blog To Do List #2
Have lots more giveaways! Right now Im having my 200 follower giveaway (through May 20, 2012).  Im going to definitely have one each time I reach another 100 follower milestone!


 Blog To Do List #3
Re-design my word wall so it goes along with my Cat in the Hat Classroom Theme!


Teacher Project #1: Clear the Bookshelf!
I have way too many workbooks that I NEVER use! I grabbed a bunch of them at the dollar store, and I had subscribed to the mailbox for years.  But... I honestly dont even open these books anymore!  I much prefer to make my own.  So... what should I do with these... sell? donate? host a giveaway?


Teacher Project #2: Post My Math Units on TPT
Math is my favorite thing to teach... even though you probably wouldnt know that based on the lack of Math Resources on my blog!  I want to fix up my math units to make them even prettier for TPT, and post them up for sale!


House Project #1: Refinish my Kitchen Cabinets!
This is an old picture of my kitchen... weve since had to replace the dishwasher and toaster.  Regardless, those 1980s cabinets are the most outdated thing in my house... and I am ready to spruce them up!  

Im going to paint all of the oak to match the colors of the laminate cabinets, and make the handles a nice taupe color.  Then, I just have to convince the hubby that we need new countertops!


House Project #2: Refinish this Table!
This table is yet another eyesore.  Once we bought the leather chairs, it started to look even worse.  This summer Im going to refinish it to a chocolate brown to match the rest of the furniture.


And... My Just for Fun List!
1. Go for walks around the neighborhood with my awesome neighbors!
2. Go to the beach as often as possible!
3. Take my mom and dads new dog to the park a lot!


Thats definitely not enough to fill up my summer, but I know that plenty more will come up that needs to get done!  Those are just my priorities so I hope I can accomplish them all!
Read more »

Saturday, February 14, 2015

List of Biggest and Popular Programming Contests

List of Biggest and Popular Programming Contests

Today I am going to share about some biggest and popular programming contests that are being organised by big IT companies like Google, IBM, Microsoft, etc. These are organised in order to find talented programmers all over the world. Programming languages like C, C++, JAVA, etc can be used to participate. Below I have provided a short description about each contest along with their official website so that you can get more details about them.

Also Read: Online Compilers: The Top 5 Websites to Write, Compile and Run Programs Online
Also Read: How to Write and Run C/C++ Programs in Ubuntu (Linux)

Google Code Jam
https://code.google.com/codejam/
Google Code Jam is an international programming competition hosted and administered by Google. The competition began in 2003 as a means to identify top engineering talent for potential employment at Google. The competition consists of a set of algorithmic problems which must be solved in a fixed amount of time. Competitors may use any programming language and development environment to obtain their solutions.

The ACM-IPC International Collegiate Programming Contest
http://icpc.baylor.edu/
ACM International Collegiate Programming Contest (abbreviated as ACM-ICPC or just ICPC) is an annual multi-tiered competitive programming competition among the universities of the world. The contest is sponsored by IBM.

The ICFP Programming Contest
http://www.icfpconference.org/contest.html
The ICFP Programming Contest is an international programming competition held annually around June or July since 1998, with results announced at the International Conference on Functional Programming. Teams may be of any size and any programming language(s) may be used. There is also no entry fee. Participants have 72 hours to complete and submit their entry over the Internet. There is often also a 24-hour lightning division.

Microsoft Imagine Cup
http://www.imaginecup.com/
Imagine Cup is an annual competition sponsored and hosted by Microsoft Corp. which brings together young technologists worldwide to help resolve some of the worlds toughest challenges. The Imagine Cup comprises five major technology competitions, including Software Design, and four challenges (although the challenge number is updated annually).

Also Read: What are advantages and disadvantages of C language?
Also Read: Simple program to create a circular loading bar using graphics

Internet Problem Solving Contest
http://ipsc.ksp.sk/
Internet Problem Solving Contest is an online programming competition for 
teams of up to three people, conducted annually each May since 1999. It is organized by the students and faculty members of Faculty of Mathematics, Physics and Informatics of Comenius University in Bratislava, Slovakia. The competition consists of a set of algorithmic problems which must be solved in a fixed amount of time.

Hewlett Packard (HP) Codewars
http://www.hpcodewars.org/
HP CodeWars, formerly Compaq CodeWars, is an annual programming competition held on the Hewlett-Packard campus in Houston, Texas, for area high schools. The first competition was held in 1998. In 2002, the name changed from Compaq CodeWars to HP CodeWars following Hewlett-Packards acquisition of Compaq. In 2013, HP CodeWars events were also held at HP locations in Taipei, Taiwan and Roseville, California.

There are so many other popular programming contests that I have missed in this article. Let me know about them by commenting below. If you liked the article then dont forget to share it.

Source: Wikipedia
Image Source: http://sharif.ir/~acmicpc/acmicpc05/
Read more »

Pentaho CDE Webdeatils example Dashboards list Reference



1) Web details site
http://www.webdetails.pt/

2) Example -1 ( BigWire less Example Dashboard)
http://demo.webdetails.org:8080/pentaho/content/pentaho-cdf-dd/Render?solution=ClearWireless&path=&file=maindashboard.wcdf

3) Example-2 (Overview Dashboard)
http://www.webdetails.pt/pentaho/content/pentaho-cdf-dd/Render?solution=Demo&path=%2FDashboards&file=Content01.wcdf

4) Example-3(Grow Mozilla)
https://metrics.mozilla.com/data/content/pentaho-cdf-dd/Render?solution=metrics2&path=%2FgetInvolved&file=getInvolved.wcdf

5) Example-4 (The Fighter Shoot out Dashbard)
http://www.webdetails.pt/pentaho/content/pentaho-cdf-dd/Render?solution=PublicDemo&path=%2FTieDemo&file=TieDemo.wcdf

6) Example-5(SyncDemo1)
http://www.webdetails.pt/pentaho/content/pentaho-cdf-dd/Render?solution=PublicDemo&path=%2FSyncDemo1&file=SyncDemo1.wcdf

7) Example-6(Lekaemia & Lymphoma Research)
http://demo.webdetails.org:8080/pentaho/content/pentaho-cdf-dd/Render?solution=Leukaemia&path=&file=leukaemia.wcdf

8) Example-7 (Leading Product Lines (Pivot Table))
http://www.pentaho.com/pentaho/mantle/home/content/getting_started_launch.html?selectedTab=tab2&selectedContentIndex=0
You need to login to the demo site and then have to check this example
Image found for this example

Why all these examples here ?
You can open this examples in Mozilla browser and debug the css, java script, jquery for your requirements and of course these examples will make your job easy as you have some example ready with you.




Read more »