<?xml version="1.0"?>
<rss version="2.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007">
   <channel>
      <title>Google Developer Blogs Super-Feed</title>
      <description>A super-feed that aggregates 12 Google Developer blogs, including AJAX Search API, Gears, Gadgets, OpenSocial, Open Source, Mashup Editor, Web Toolkit, App Engine, Google Code, iGoogle, Desktop, and Data API.</description>
      <link>http://pipes.yahoo.com/pipes/pipe.info?_id=yle0FKi13RGFUX6_pQt1Yg</link>
      <pubDate>Fri, 27 Nov 2009 10:49:39 -0800</pubDate>
      <generator>http://pipes.yahoo.com/pipes/</generator>
      <item>
         <title>&lt;h1&gt;Open Source Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>The Apertium Project's First Google Summer of Code</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/ZviipKxfGLA/apertium-projects-first-google-summer.html</link>
         <description>The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.apertium.org/&quot;&gt;Apertium Project&lt;/a&gt; works on open-source machine translation and language technology. We try to focus our efforts on lesser-resourced and marginalized languages, but also work with larger languages. To date, we have released translators for 21 language pairs, covering languages spoken by 1.1 billion people, ranging from English (est. 500m speakers) to Aranese (est. 4,000 speakers). A similar number of additional language pairs are in development. The Apertium software is licensed under the GPL, but in addition (a rarer situation in the machine translation field) so is the &lt;span style=&quot;font-weight:bold;&quot;&gt;data&lt;/span&gt; for all these language pairs. This means that the data can be re-used by other language projects (e.g. in developing spelling or grammar checkers, thesauri, etc).
&lt;br /&gt;
&lt;br /&gt;This was our first year in Google Summer of Code and we were very fortunate to receive nine student slots. We filled them with some great students and are pleased to report that out of the nine projects, eight were successful. &lt;br /&gt;
&lt;br /&gt;The completed project were:
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A translator for Norwegian Bokmål (nb) and Norwegian Nynorsk (nn)&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;This project was accepted as part of our &quot;adopt a language pair&quot; idea from our ideas page. Some work had already been done on the translator but it was a long way from finished. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://unhammer.wordpress.com/&quot;&gt;Kevin Unhammer&lt;/a&gt; from the University of Bergen was mentored by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hum.uit.no/a/trond/&quot;&gt;Trond Trosterud&lt;/a&gt; from the University of Tromsø. The final result, after an epic effort, is a working translator (and the first free software translator for nb-nn) that makes a mistake in only 11 words out of every 100 translated, making using the system for post-edition feasible.
&lt;br /&gt;
&lt;br /&gt;One of the key aspects of Kevin's work was the re-use and adaptation of existing open source resources. Much of the bilingual dictionary was statistically inferred from the existing translations in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kde.org/&quot;&gt;KDE&lt;/a&gt;, using &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://sourceforge.net/projects/retratos/&quot;&gt;ReTraTos&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.fjoch.com/GIZA++.html&quot;&gt;GIZA++&lt;/a&gt; (created by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://research.google.com/pubs/och.html&quot;&gt;Franz Och&lt;/a&gt;). In addition to this, Kevin used the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://maximos.aksis.uib.no/Aksis-wiki/Oslo-Bergen_Tagger&quot;&gt;Oslo-Bergen Constraint Grammer&lt;/a&gt;, contributing fixes not only to that, but to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://beta.visl.sdu.dk/cg3.html&quot;&gt;VISL CG3&lt;/a&gt; software itself. After the GSoC deadline, Kevin has continued his work, including incorporating some changes from feedback from the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nn.wikipedia.org/wiki/Wikipedia:Wikiprosjekt_Maskinomsetjing_fr%C3%A5_bokm%C3%A5l/Manglande_omsetjingar&quot;&gt;Nynorsk Wikipedia&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;A translator for Swedish (sv) to Danish (da)
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;Another language pair adoption, &lt;span style=&quot;font-weight:bold;&quot;&gt;Michael Kristensen&lt;/span&gt;, who had previously done some work on this translator, was mentored by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://javabog.dk/&quot;&gt;Jacob Nordfalk&lt;/a&gt;, the author of our English to Esperanto translator. As there are very few free linguistic resources for Swedish and Danish the work was pretty much started from scratch, although we took great advantage of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://sv.wiktionary.org/wiki/Wiktionary:Huvudsida&quot;&gt;Swedish Wiktionary&lt;/a&gt;. The translator is only unidirectional, from Swedish to Danish, and it has an error rate of around 20%.
&lt;br /&gt;
&lt;br /&gt;The completion of this translator is something of a triumph for Apertium. Begun back in 2005, the project had been neglected for many years. This was the first translator for the Apertium platform that focused on non-Romance languages.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Multi-engine machine translation (MEMT)&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Gabriel Synnaeve&lt;/span&gt; was mentored by &lt;span style=&quot;font-weight:bold;&quot;&gt;Francis Tyers&lt;/span&gt; to work on a module to improve the quality of machine translation by taking translations from different systems and merging their strengths and discarding their weaknesses. The two systems focused on in the initial prototype are Apertium (rule-based MT) and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.statmt.org/moses/&quot;&gt;Moses&lt;/a&gt; (statistical MT) but it can easily be extended to more. The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.apertium.org/wiki/Multi-engine_translation_synthesiser#Multi-engine_pipeline&quot;&gt;idea&lt;/a&gt; behind the system is that for some languages there is often not one MT system which is better than all others, but some are better at some phrases and some are better at others. Thus, if we can combine the output of two or more systems with different strengths/weaknesses, we can make better translations.
&lt;br /&gt;
&lt;br /&gt;Perhaps the most exciting aspect of the MEMT project is its potential for use as a research platform for future work on hybrid machine translation, by allowing the researcher to focus only on the algorithms they wish to implement. During the project, Gabriel was joined by Francis in person for a 'mini-hackathon', which, despite something of a farcical start involving requests made on IRC for phone calls across Europe on behalf of two people who were in the same city, lead to a greater degree of functionality and modularization in the code.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Highly scalable web service architecture for Apertium&lt;/span&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;
&lt;br /&gt;Víctor Manuel Sánchez Cartagena&lt;/span&gt; worked with mentor &lt;span style=&quot;font-weight:bold;&quot;&gt;Juan Antonio Perez-Ortiz&lt;/span&gt; on a highly-scalable web service architecture, or, Apertium for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Cloud_computing&quot;&gt;Cloud computing&lt;/a&gt;. Initially targeting Amazon's &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud&quot;&gt;EC2&lt;/a&gt;, as well as standalone servers, the scalable web service allows the use of multiple translation services on multiple physical or virtual servers, scaling to meet the translation demands of users, from a single user-facing service, which implements the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/&quot;&gt;Google Language API&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;The core of the system is the translation router, which controls the flow between user and translation server, based on a variety of factors, including the availability of the language pair, the current load on the server, as well as providing a framework to allow these factors to have different priorities on a per-user basis. It also takes into account the cost of each translation request. The project is a complete package; as well as the router, it includes a translation daemon, and convenience scripts to ease the rollout of server instances.
&lt;br /&gt;
&lt;br /&gt;In addition to his work on his project, Víctor is also serving as an organiser for the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xixona.dlsi.ua.es/freerbmt09/&quot;&gt;FreeRBMT workshop&lt;/a&gt;.
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;
&lt;br /&gt;Conversion of Anubadok&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Abu Zaher&lt;/span&gt; was mentored by &lt;span style=&quot;font-weight:bold;&quot;&gt;Kevin Donnelly&lt;/span&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xixona.dlsi.ua.es/~fran/&quot;&gt;Francis Tyers&lt;/a&gt; to convert &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://anubadok.sourceforge.net/&quot;&gt;Anubadok&lt;/a&gt;, an open-source MT system for English to Bengali to work with the Apertium engine. This was an ambitious project and not all of the goals were realised, but we were able to make the first &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Morphology_(linguistics)&quot;&gt;wide-coverage morphological analyser / generator&lt;/a&gt; for Bengali and a substantial amount of lexical transfer, so the project was a great success.
&lt;br /&gt;
&lt;br /&gt;Zaher is also looking at improving the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ankur.org.bd/wiki/Documentation#Bangla_Spell_Checking_How-to&quot;&gt;Ankur&lt;/a&gt; spell checker with information from his analyser / generator, so the work done is already being reused; there is also interest in using the data to create a Bengali &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Stemming&quot;&gt;stemmer&lt;/a&gt;, for more efficient searching/indexing of Bengali texts, and a number of tools which were created to model the various aspects of Bengali inflection will certainly prove useful in other areas of NLP for Bengali.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Apertium going SOA&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Pasquale Minervini's&lt;/span&gt; work was motivated by the needs of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.informaticisenzafrontiere.org/&quot;&gt;Informatici senza Frontiere&lt;/a&gt; to have a translation engine that would fit into a Service-Oriented architecture. To this end, Pasquale, mentored by &lt;span style=&quot;font-weight:bold;&quot;&gt;Jimmy O'Regan&lt;/span&gt;, designed an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/XML-RPC&quot;&gt;XML-RPC&lt;/a&gt;-based server that efficiently contains the Apertium pipeline, and layered it with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/JSON&quot;&gt;JSON&lt;/a&gt; (still under development), &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/SOAP&quot;&gt;SOAP&lt;/a&gt;, and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/COBRA&quot;&gt;CORBA&lt;/a&gt; services, which, as well as making Apertium more &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Buzzword_compliant&quot;&gt;buzzword compliant&lt;/a&gt;, gives a greater range of options to programmers wishing to integrate Apertiums translation services into a wider range of architectures. This is undoubtedly a popular project idea: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.alexa.com/siteinfo/apertium.org#keywords&quot;&gt;Alexa's keywords&lt;/a&gt; for Apertium show 'apertium going soa' and 'deadbeef apertium' (deadbeef is Pasquale's IRC nick) in 2nd and 4th place for search keywords leading to Apertium.
&lt;br /&gt;
&lt;br /&gt;Because of the potential overlap between their projects, in the first weeks of their GSoC work, Pasquale and Víctor agreed on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/&quot;&gt;Google Language API&lt;/a&gt; as a standard for their projects to communicate; Pasquale took this agreement one step further by implementing the 'language detection' feature of the API - something previously unavailable in Apertium. In addition to that, Pasquale also contributed memory leak checks against the Apertium platform, as well as other fixes, and has helped another (non-GSoC) student in the goal of porting Apertium to Windows.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Trigram part-of-speech tagging&lt;/span&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;
&lt;br /&gt;Zaid Md. Abdul Wahab Sheikh&lt;/span&gt; was mentored by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.dlsi.ua.es/~fsanchez/&quot;&gt;Felipe Sánchez Martínez&lt;/a&gt; to improve our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Part-of-speech_tagging&quot;&gt;part-of-speech tagging&lt;/a&gt; module to use &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Trigram&quot;&gt;trigrams&lt;/a&gt; instead of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Bigram&quot;&gt;bigrams&lt;/a&gt;, as well as implementing changes to the training tools to create data for it.
&lt;br /&gt;
&lt;br /&gt;Apertium was originally designed for closely related languages, but is growing to meet the challenges of translating between more distant languages. One of the unique aspects of Dr. Sanchez's work on Part-of-Speech tagging is the use of target language information which allows an accurate tagger to be trained using much less data than usual. Zaid's work builds on Dr. Sanchez's work with first-order &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Hidden_Markov_model&quot;&gt;Hidden Markov Models&lt;/a&gt;, extending it to second-order HMMs, similarly to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.coli.uni-saarland.de/~thorsten/tnt/&quot;&gt;TnT&lt;/a&gt;. This enables more accurate translation between more distant languages, using the same methods, so that the rest of the Apertium system can continue to grow.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Java port of lttoolbox&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Raphaël Laurent&lt;/span&gt; worked with &lt;span style=&quot;font-weight:bold;&quot;&gt;Sergio Ortiz Rojas&lt;/span&gt; to port &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.apertium.org/wiki/Lttoolbox&quot;&gt;lttoolbox&lt;/a&gt; to Java. lttoolbox is the core component of the Apertium system; as well as providing &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Morphological_dictionary&quot;&gt;morphological analysis&lt;/a&gt; and generation, it also provides pattern matching and dictionary lookup to the rest of Apertium, so a Java port is the first step towards a version of Apertium for Java-based devices. Raphaël finished an earlier line-for-line port contributed by Nic Cotrell, first making it work; then making it binary compatible.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;As it stands currently, lttoolbox-java can be integrated into other Java-based tools, facilitating the re-use of our software and our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.apertium.org/wiki/List_of_dictionaries&quot;&gt;extensive repository&lt;/a&gt; of morphological analysers. Tools such as &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.languagetool.org/&quot;&gt;LanguageTool&lt;/a&gt;, the open source proofreading tool, also make extensive use of morphological analysis, but &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.omegat.org/&quot;&gt;OmegaT&lt;/a&gt;, the open source &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Computer-assisted_translation&quot;&gt;CAT&lt;/a&gt; tool, could use it for dictionary look-up of inflected words; it could even be used with our own &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://sourceforge.net/project/shownotes.php?release_id=614051&quot;&gt;apertium-morph&lt;/a&gt; tool: a plugin for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://lucene.apache.org/&quot;&gt;Lucene&lt;/a&gt; that allows linguistically-rich document indexing.
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;FreeRBMT&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;On the 2nd and 3rd of November, we held the first &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xixona.dlsi.ua.es/freerbmt09/&quot;&gt;FreeRBMT workshop&lt;/a&gt;, which was heavily inspired by the Google Summer of Code program, both as a way for students and mentors to meet in person, and to provide the students with an opportunity to present peer-reviewed papers about the work they completed during the program. The entire proceedings are available from the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.ua.es/&quot;&gt;University of Alicante&lt;/a&gt;; in particular, we would like to highlight the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/11809/browse-title&quot;&gt;papers&lt;/a&gt; which were successfully presented by the students who took part in GSoC:
&lt;br /&gt;
&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/12031&quot;&gt;Apertium goes SOA: an efficient and scalable service based on the Apertium rule-based machine translation platform&lt;/a&gt;; Minervini, Pasquale
&lt;br /&gt;
&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/12029&quot;&gt;Development of a morphological analyser for Bengali&lt;/a&gt;; Faridee, Abu Zaher Md.; Tyers, Francis M.
&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/12030&quot;&gt;
&lt;br /&gt;An open-source highly scalable web service architecture for the Apertium machine translation engine&lt;/a&gt;; Sánchez-Cartagena, Víctor M.; Pérez-Ortiz, Juan Antonio
&lt;br /&gt;
&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/12025&quot;&gt;Reuse of free resources in machine translation between Nynorsk and Bokmål&lt;/a&gt;; Unhammer, Kevin; Trosterud, Trond
&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/12032&quot;&gt;
&lt;br /&gt;A trigram part-of-speech tagger for the Apertium free/open-source machine translation platform&lt;/a&gt;; Sheikh, Zaid Md Abdul Wahab; Sánchez-Martínez, Felipe
&lt;br /&gt;
&lt;br /&gt;In addition, the following paper was presented by the mentors of a successful project (Michael, the student, was unfortunately too busy to participate in its writing):
&lt;br /&gt;
&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://rua.ua.es/dspace/handle/10045/12024&quot;&gt;Shallow-transfer rule-based machine translation for Swedish to Danish&lt;/a&gt;; Tyers, Francis M.; Nordfalk, Jacob
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;We would like to thank Google for providing us with the opportunity to participate in the Summer of Code program; in particular, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hawthornlandings.org/&quot;&gt;Leslie&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/catallman&quot;&gt;Cat&lt;/a&gt;, and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://atlantalinuxfest.org/node/73&quot;&gt;Ellen&lt;/a&gt;, for making it run so smoothly. We would also like to make special mention of two students: Ankitha Rao and Daniel Beck, who, despite being unsuccessful in their applications, continued to work on their proposed projects (an English to Hindi translator, and a module for multi-word units, respectively). Finally, we would like to thank all of the students, mentors, and administrators who contributed their time and skill to Apertium.
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Francis Tyers and Jimmy O'Regan, Summer of Code Mentors for the Apertium Project&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-3545751254279032338?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ZviipKxfGLA:QIHlcolS_Ms:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ZviipKxfGLA:QIHlcolS_Ms:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=ZviipKxfGLA:QIHlcolS_Ms:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/ZviipKxfGLA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Cat Allman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-3545751254279032338</guid>
         <pubDate>Thu, 26 Nov 2009 21:41:00 -0800</pubDate>
      </item>
      <item>
         <title>SWIG's Second Summer of Code</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/2a7htGWpLyY/swigs-second-summer-of-code.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.swig.org/&quot;&gt;SWIG&lt;/a&gt; is a programmer's tool designed to make it easier to use C and C++ code from other popular programming languages such as Python, Perl, Ruby, PHP, Java, and C#. 2009 was &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://socghop.appspot.com/org/home/google/gsoc2009/swig&quot;&gt;SWIG's second Summer of Code&lt;/a&gt;, and this year we mentored five projects related to SWIG. All five students were very active over the summer period and produced some great new features. In no particular order:&lt;br /&gt;&lt;br /&gt;Matevž Jekovec has been busy working &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.usingenglish.com/reference/idioms/at+the+coalface.html&quot;&gt;at the coal face&lt;/a&gt; of SWIG to add support for C++0x, the forthcoming C++ standard. Matevž has managed to achieve close to full support for C++0x. The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/C%2B%2B0x&quot;&gt;C++0x Wikipaedia article&lt;/a&gt; details the numerous planned new features and Matevž has put together a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://swig.svn.sourceforge.net/viewvc/swig/branches/gsoc2009-matevz/Doc/Manual/Cpp0x.html&quot;&gt;SWIG C++0x page&lt;/a&gt; documenting the new SWIG support for each of these. In summary the enhanced C++ language can now be parsed by SWIG, which in itself is a great step. There is much more than just this though, as most of the information parsed is used to create useful wrappers of C++0x code. The work can be tried out on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://swig.svn.sourceforge.net/viewvc/swig/branches/gsoc2009-matevz/&quot;&gt;C++0x branch&lt;/a&gt; which should be merged fairly soon into a forthcoming release.&lt;br /&gt;&lt;br /&gt;Miklos Vajna has been working on SWIG's PHP support to implement an advanced SWIG feature already supported for most other target languages, but not PHP. The feature is called &quot;directors&quot; and allows cross-language polymorphism - wrapped C++ classes can be subclassed in PHP and virtual method calls work in the natural way, whether they're made from PHP or C++ code. You can read more in the new &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.swig.org/Doc1.3/Php.html#Php_nn3&quot;&gt;PHP Director documentation&lt;/a&gt;. Miklos made such great progress that we were able to merge this support into SWIG &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.swig.org/download.html&quot;&gt;1.3.40&lt;/a&gt;, which was released even before the Summer of Code finished. Miklos also spent some time working on improving SWIG's test suite for PHP, and fixing bugs in the PHP support.&lt;br /&gt;&lt;br /&gt;Ashish Sharma spent the summer adding support for Objective-C as a new target language. Objective-C is a major language on the Mac OS X platform. This means that now SWIG can be used to generate Objective-C wrappers over C++ code. In particular the wrappers include proxy classes, which preserve the class hierarchy from the C++ code. Ultimately this means that from the user's perspective, proxy objects look no different to objects originally written in Objective-C. Adding a new target language is quite a considerable task and Ashish is keen to add plenty more improvements over the coming months. Ashish's work is in Subversion and can be accessed in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://swig.svn.sourceforge.net/viewvc/swig/branches/gsoc2009-ashishs99/&quot;&gt;ashishs99 branch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Baozeng Ding has also added a new target language, in this case for the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.scilab.org/&quot;&gt;Scilab language&lt;/a&gt;, a free numerical computing package. He has coded up support for all the C features: variables, functions, constants, enums, structs, unions, pointers and arrays and also intends to develop it further in the near future. Documentation for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://swig.svn.sourceforge.net/viewvc/swig/branches/gsoc2009-sploving/Doc/Manual/Scilab.html&quot;&gt;SWIG and Scilab&lt;/a&gt; can be viewed online direct from Baozeng's Subversion branch.&lt;br /&gt;&lt;br /&gt;Kosei Moriyama has been working on Perl bindings for the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://xapian.org/&quot;&gt;Xapian&lt;/a&gt; library using SWIG, to replace some existing bindings implemented by hand. He's achieved almost complete compatibility with the API of the existing bindings (the only real omission is callbacks which are waiting for completion of director support for Perl in SWIG). He has also wrapped features which weren't previously accessible from Perl. You can &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://trac.xapian.org/browser/branches/gsoc2009-kosei&quot;&gt;view Kosei's work online&lt;/a&gt; in his Subversion branch.&lt;br /&gt;&lt;br /&gt;Finally, many thanks to Google for sponsoring the Summer of Code and a special thanks for all the hard work done by the students, mentors and Olly Betts, the co-administrator.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By William Fulton, SWIG administrator&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-3581907658331920535?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=2a7htGWpLyY:dF_5f2DztdQ:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=2a7htGWpLyY:dF_5f2DztdQ:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=2a7htGWpLyY:dF_5f2DztdQ:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/2a7htGWpLyY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Cat Allman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-3581907658331920535</guid>
         <pubDate>Mon, 23 Nov 2009 07:31:00 -0800</pubDate>
      </item>
      <item>
         <title>Chromium OS Now Open Sourced</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/2A6aPjGPJ-8/chromium-os-now-open-sourced.html</link>
         <description>In July we &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html&quot;&gt;announced&lt;/a&gt; that we were working on a project called Google Chrome OS, an open source operating system based on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/chrome&quot;&gt;Google Chrome browser&lt;/a&gt; and built for today's web. For the past few months we have been working hard on developing a solid foundation and today we are excited to announce the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2009/11/releasing-chromium-os-open-source.html&quot;&gt;Chromium OS&lt;/a&gt; open source project. &lt;br /&gt;&lt;br /&gt;You can read more about our open source announcement at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.chromium.org/2009/11/hello-open-source-developers-would-you.html&quot;&gt;Chromium Blog&lt;/a&gt;, or get involved directly at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.chromium.org/&quot;&gt;chromium.org&lt;/a&gt;. We look forward to working with the open source community to help shape the future of personal computing.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Martin Bligh, Software Engineer&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-1802831163851386132?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=2A6aPjGPJ-8:8q-9HA93ICY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=2A6aPjGPJ-8:8q-9HA93ICY:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=2A6aPjGPJ-8:8q-9HA93ICY:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/2A6aPjGPJ-8&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Cat Allman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-1802831163851386132</guid>
         <pubDate>Wed, 18 Nov 2009 07:32:00 -0800</pubDate>
      </item>
      <item>
         <title>Hey! Ho! Let's Go!</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/ihlHPpc0bk8/hey-ho-lets-go.html</link>
         <description>Here at Google, we believe programming should be fast, productive, and most importantly, fun. That's why we're excited to open source an experimental new language called &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.golang.org&quot;&gt;Go&lt;/a&gt;. Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++. Typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go lets you move fast.&lt;br /&gt;&lt;br /&gt;Go is a great language for systems programming with support for multi-processing, a fresh and lightweight take on object-oriented design, plus some cool features like true closures and reflection.&lt;br /&gt;&lt;br /&gt;Want to write a server with thousands of communicating threads? Want to spend less time reading blogs while waiting for builds? Feel like whipping up a prototype of your latest idea? Go is the way to go! Check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=wwoWei-GAPo&quot;&gt;video&lt;/a&gt; for more information or visit &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://golang.org/&quot;&gt;golang.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Robert Griesemer, Rob Pike, Ken Thompson, Ian Taylor, Russ Cox, Jini Kim and Adam Langley - The Go Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-6890988865085525429?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ihlHPpc0bk8:nTEPu1AjsAk:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ihlHPpc0bk8:nTEPu1AjsAk:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=ihlHPpc0bk8:nTEPu1AjsAk:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/ihlHPpc0bk8&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Cat Allman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-6890988865085525429</guid>
         <pubDate>Tue, 10 Nov 2009 07:15:00 -0800</pubDate>
      </item>
      <item>
         <title>London Open Source Jam 14</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/ZBr7xqycxD8/london-open-source-jam-14.html</link>
         <description>We held the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://osjam.appspot.com/jam/&quot;&gt;14th&lt;/a&gt; Google London Open Source Jam at our Victoria HQ on September 24th. The topic this time was &quot;Video and Sound&quot;, and our Jammers had some real treats to share.&lt;br /&gt;&lt;br /&gt;Steven Goodwin told us how his open source &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.sgxengine.com/&quot;&gt;SGX 3D graphics engine&lt;/a&gt; deals with three key problems of other computer game engines. On a similar theme, Themis Bourdenas discussed the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.doc.ic.ac.uk/~tbourden/vine/&quot;&gt;vine engine&lt;/a&gt;, a modular game engine for 2d and 3d games.&lt;br /&gt;&lt;br /&gt;Borys Musielak presented &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://filmaster.com/&quot;&gt;Filmaster&lt;/a&gt;, an open source film recommendation engine. Neil Harris told us about an attempt by the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.kendra.org.uk/&quot;&gt;Kendra Initiative&lt;/a&gt; to foster a common meta data format for content discovery on the semantic web.&lt;br /&gt;&lt;br /&gt;In an Open Source Jam first, Jagannathan gave a performance of his &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/din/&quot;&gt;Din&lt;/a&gt; software musical instrument. Din is designed for playing live Indian music, is based on Bezier curves and really has to be heard to be fully appreciated.&lt;br /&gt;&lt;br /&gt;Sam Mbale gave us an update on his projects to help Africans build online communities using open source. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://softwareas.com/&quot;&gt;Mike Mahemoff&lt;/a&gt; discussed some web tools frameworks for intranets, bookmarklets and trails in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://scrumptious.tv/&quot;&gt;Scrumptious&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The UK government has plans to introduce a law to allow content-owners to force ISPs to disconnect the internet connection of users suspected of file sharing, without any proof. Glyn Wintle gave us an overview of how the proposed law will affect us, how the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.openrightsgroup.org/&quot;&gt;Open Rights Group&lt;/a&gt; is campaigning against it, and how we can help.&lt;br /&gt;&lt;br /&gt;Douglas Squirrel talked about the difficulty blind people have in finding information on websites, and presented &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blindpages.com/&quot;&gt;BlindPages.com&lt;/a&gt; - a new project to reformat the web in a screen-reader friendly way. He also demoed a prototype telephone interface to the service.&lt;br /&gt;&lt;br /&gt;Much pizza was eaten and free beer drunk, and we all ended up in the pub next door to continue our discussions. A big thank you to all our speakers and attendees, and we hope to see you at the next Jam!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Matt Godbolt, Mobile Engineering&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-926463678034569826?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ZBr7xqycxD8:AbeYTNljWM8:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=ZBr7xqycxD8:AbeYTNljWM8:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=ZBr7xqycxD8:AbeYTNljWM8:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/ZBr7xqycxD8&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Cat Allman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-926463678034569826</guid>
         <pubDate>Wed, 04 Nov 2009 08:31:00 -0800</pubDate>
      </item>
      <item>
         <title>Google Summer of Code Mentor Summit 2009</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/I18OmcuPGEo/google-summer-of-code-mentor-summit.html</link>
         <description>&lt;div style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_S5_xMiIF4Sc/SusxsaWV2iI/AAAAAAAAAWU/rS3WdGqMgfM/s1600-h/EveryonePhotoWarthog.jpg&quot;&gt;&lt;img style=&quot;margin:0px auto 10px;display:block;text-align:center;cursor:pointer;width:400px;height:267px;&quot; src=&quot;http://4.bp.blogspot.com/_S5_xMiIF4Sc/SusxsaWV2iI/AAAAAAAAAWU/rS3WdGqMgfM/s400/EveryonePhotoWarthog.jpg&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5398463217390705186&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;span style=&quot;font-style:italic;font-size:78%;&quot;&gt;Photo Credit: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gallery.eaglescrag.net/v/Conferences/GSoC-MentorSummit2009/&quot;&gt;John 'Warthog9' Hawley&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;This past weekend, approximately 250 Open Source developers from around the world gathered at Google's headquarters in Mountain View, CA for the fourth &lt;a rel=&quot;nofollow&quot; title=&quot;Google Summer of Code&amp;#x002122; Mentor Summit&quot; target=&quot;_blank&quot; href=&quot;http://gsoc-wiki.osuosl.org/index.php/2009&quot; id=&quot;ap6a&quot;&gt;Google Summer of Code™ Mentor Summit&lt;/a&gt;. These developers who mentored students in this year's &lt;i&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;Google Summer of Code&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/soc/&quot; id=&quot;f7b7&quot;&gt;Google Summer of Code&lt;/a&gt;&lt;/i&gt; program gathered &quot;&lt;a rel=&quot;nofollow&quot; title=&quot;unconference&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Unconference&quot; id=&quot;wd-.&quot;&gt;unconference&lt;/a&gt;&quot; style to discuss ways to improve the program, share their experiences, and learn about each other's projects.&lt;br /&gt;&lt;br /&gt;One of the recurring comments about what makes the Mentor Summit special was that it gathers developers from a diverse range of projects (all &lt;a rel=&quot;nofollow&quot; title=&quot;150 organizations&quot; target=&quot;_blank&quot; href=&quot;http://socghop.appspot.com/program/accepted_orgs/google/gsoc2009&quot; id=&quot;td7n&quot;&gt;150 organizations&lt;/a&gt; participating in this year's &lt;i&gt;Google Summer of Code&lt;/i&gt; were invited to send two delegates). This allowed for a cross pollination of ideas that isn't usually found at conferences dedicated to one specific platform or language. In addition, the summit was an opportunity for developers who usually collaborate online to meet face to face. In fact, some of our attendees met colleagues they had been working with for several years in person for the first time at the summit!&lt;br /&gt;&lt;br /&gt;Most of all, the summit was a great place to meet like minded Open Source developers who are passionate about bringing in new contributors to their communities. Check out &lt;a rel=&quot;nofollow&quot; title=&quot;photos&quot; target=&quot;_blank&quot; href=&quot;http://gsoc-wiki.osuosl.org/index.php/2009#Photos&quot; id=&quot;g.f3&quot;&gt;photos&lt;/a&gt; from the event or read through the &lt;a rel=&quot;nofollow&quot; title=&quot;session notes&quot; target=&quot;_blank&quot; href=&quot;http://gsoc-wiki.osuosl.org/index.php/Session_Notes_2009&quot; id=&quot;vuyq&quot;&gt;session notes&lt;/a&gt; to find out more about what happened at this year's summit.&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;&lt;br /&gt;by Ellen Ko, Open Source Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-185001929417676546?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=I18OmcuPGEo:IUCRB_OD_NI:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=I18OmcuPGEo:IUCRB_OD_NI:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=I18OmcuPGEo:IUCRB_OD_NI:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/I18OmcuPGEo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Ellen Ko</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-185001929417676546</guid>
         <pubDate>Fri, 30 Oct 2009 04:32:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_S5_xMiIF4Sc/SusxsaWV2iI/AAAAAAAAAWU/rS3WdGqMgfM/s72-c/EveryonePhotoWarthog.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Fall at the OSPO</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/tSD0nQSqfxc/fall-at-ospo.html</link>
         <description>The leaves are turning here in Mountain View, but they are not the only ones blazing away. It's a busy time of year for open source for Google, with lots of talks and events going on.&lt;br /&gt;&lt;br /&gt;Recently:&lt;br /&gt;- &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.red-bean.com/sussman/&quot;&gt;Ben Collins-Sussman&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.red-bean.com/fitz/&quot;&gt;Brian (Fitz) Fitzpatrick&lt;/a&gt; gave their &quot;Myth of the Genius Programmer&quot; talk as part of the Opening sessions at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.acm.uiuc.edu/conference/2009/index.html&quot;&gt;&quot;Reflections / Projections&quot;, the 15th ACM@UIUC Student Computing Conference&lt;/a&gt; at the University of Illinois Urbana-Champaign.&lt;br /&gt;&lt;br /&gt;- They were joined by Googler and Python maintainer &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.acm.uiuc.edu/conference/2009/speakers/martelli.html&quot;&gt;Alex Martelli&lt;/a&gt;, who spoke on &quot;Python and the Programmer&quot;. &lt;br /&gt;&lt;br /&gt;- &lt;a rel=&quot;nofollow&quot;&gt;Chris DiBona&lt;/a&gt;, head of the Open Source Programs Office at Google gave a keynote at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.astricon.net/confKeynote.aspx&quot;&gt;AstriCon&lt;/a&gt; in Glendale, Arizona.&lt;br /&gt;&lt;br /&gt;Currently:&lt;br /&gt;- Earlier this week &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.hawthornlandings.org/&quot;&gt;Leslie Hawthorn&lt;/a&gt;, manager of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/soc/&quot;&gt;Google Summer of Code&lt;/a&gt; program, was part of the amazing team that completed a new &quot;Manual on GSoC Mentoring&quot; in 2, count them, 2 DAYS, finishing up late last night. You will hear more about this feat in a later post after the...&lt;br /&gt;&lt;br /&gt;- Google Summer of Code Mentor Summit 2009, being held in Mountain View this weekend, October 24th and 25th. This invitation-only gathering of mentors from each of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://socghop.appspot.com/program/accepted_orgs/google/gsoc2009&quot;&gt;participating mentoring organizations&lt;/a&gt; in this year's GSoC gives the projects a chance to come together to compare notes on the mentoring process and cross-pollinate their projects. A good time promises to be had by all, and a full report will be forthcoming.&lt;br /&gt;&lt;br /&gt;Coming up:&lt;br /&gt;- &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.gollygee.com/weblogs/jblocksom/&quot;&gt;Jonathan Blocksom&lt;/a&gt; will be speaking on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;Google App Engine&lt;/a&gt; and the All For Good project&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.allforgood.org/&quot;&gt;&lt;/a&gt; at the DC edition of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://stackoverflow.carsonified.com/&quot;&gt;Stack Overflow Dev Days&lt;/a&gt;, October 26th.&lt;br /&gt;&lt;br /&gt;- On October 4th the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.usenix.org/events/lisa09/tech/&quot;&gt;LISA Conference&lt;/a&gt; in Baltimore, Maryland will feature a talk by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.usenix.org/events/lisa09/tech/techspeakers.html#berlin&quot;&gt;Daniel Berlin&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.usenix.org/events/lisa09/tech/techspeakers.html#gregorio&quot;&gt;Joe Gregorio&lt;/a&gt; on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.waveprotocol.org/&quot;&gt;Google Wave Federation Protocol&lt;/a&gt;, the underlying open network protocol for sharing waves between wave providers. Interested attendees of LISA will be able to sign up for a developers &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlewavedev.blogspot.com/2009/09/what-happened-in-wave-sandbox.html&quot;&gt;Wave Sandbox Account&lt;/a&gt;. They will also have a chance to win Googley prizes at the Google Birds of a Feather session the next evening, hosted by &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.oreilly.com/oscon2009/public/schedule/speaker/27949&quot;&gt;Cat Allman&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.usenix.org/events/lisa09/training/tutonefile.html#t5&quot;&gt;Tom Limoncelli&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Cat Allman, Open Source Programs&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-1792775441427691447?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=tSD0nQSqfxc:VX0HbPV0wwA:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=tSD0nQSqfxc:VX0HbPV0wwA:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=tSD0nQSqfxc:VX0HbPV0wwA:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/tSD0nQSqfxc&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Cat Allman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-1792775441427691447</guid>
         <pubDate>Fri, 23 Oct 2009 06:52:00 -0700</pubDate>
      </item>
      <item>
         <title>TalkBack: An Open Source Screenreader For Android</title>
         <link>http://feedproxy.google.com/~r/GoogleOpenSourceBlog/~3/EHIKRFPpBU4/talkback-open-source-screenreader-for.html</link>
         <description>Earlier this year, we blogged about project &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-opensource.blogspot.com/2009/04/announcing-eyes-free-shell-for-android.html&quot;&gt;Eyes-Free&lt;/a&gt; — a collection of Android applications that enable efficient eyes-free interaction with your mobile phone. Since then, one of the questions we have received most often is about a complete access API to enable general purpose adaptive technologies such as screenreaders.&lt;br /&gt;&lt;br /&gt;We are happy to announce the first version of such an API as part of the latest Android release (Donut). This new API is now available within the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/sdk/android-1.6-highlights.html&quot;&gt;Android 1.6 SDK&lt;/a&gt; , and we welcome developer feedback. The Android Access framework generates &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/reference/android/view/accessibility/package-summary.html&quot;&gt;android.view.accessibility.AccessibilityEvent&lt;/a&gt; in response to user interaction events; the event payload contains additional details about the event, e.g., the user interface control that received focus. This access framework enables the creation of general purpose screenreading applications that make all of Android's user interface, as well as native Android applications built with standard Android widgets usable without looking at the screen.&lt;br /&gt;&lt;br /&gt;You can see this API in use within our Open Source Android screenreader &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://eyes-free.googlecode.com/svn/trunk/TalkBack/&quot;&gt;TalkBack&lt;/a&gt;. With TalkBack installed, standard Android user interface elements such as &lt;b&gt;ListView&lt;/b&gt; produce spoken feedback during user interaction. Applications &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://eyes-free.googlecode.com/svn/trunk/SoundBack/&quot;&gt;SoundBack&lt;/a&gt; (for producing non-spoken auditory feedback) and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://eyes-free.googlecode.com/svn/trunk/KickBack/&quot;&gt;KickBack&lt;/a&gt; (for producing haptic feedback) generate additional augmentative output and demonstrate how multiple access applications can be active simultaneously.&lt;br /&gt;&lt;h3&gt;What This Means For Developers &lt;/h3&gt;If you are interested in developing innovative access solutions on Android and have been eagerly waiting for our access APIs, the Donut SDK contains what you have been waiting for — including a set of free voices for English (US and UK), French, Italian, German and Spanish. You can use TalkBack, SoundBack and KickBack as a starting point for designing your own access innovations.&lt;br /&gt;&lt;br /&gt;If you are an Android developer interested in making your applications more widely usable, you can use TalkBack and friends to quickly verify whether your applications remain usable when not looking at the screen. In this context, here are a few coding tips to ensure that your applications work out of the box with these tools: &lt;p&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt; Ensure that all visually drawn UI controls have &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.android.com/reference/android/view/View.html#attr_android:contentDescription&quot;&gt;meaningful textual labels&lt;/a&gt;. &lt;/li&gt;&lt;li&gt; Ensure that users can navigate to all controls in your application using the trackball. &lt;/li&gt;&lt;li&gt; Ensure that navigating controls in your application with the trackball results in a meaningful traversal order. &lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;What This Means For End Users &lt;/h3&gt;End-users of Android 1.6 (Donut) can enable TalkBack, SoundBack and KickBack via the &lt;b&gt;Accessibility&lt;/b&gt; section of the &lt;b&gt;Settings&lt;/b&gt; menu. You need to do this only once i.e., once enabled, these access applications remain active across restarts. Note that depending on your Android device, you may need to install these applications from the Android Market; we will post videos that demonstrate step-by-step instructions for specific Android devices in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/user/eyesfreeandroid&quot;&gt;Eyes-Free channel on YouTube&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;Providing Feedback &lt;/h3&gt; We (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://emacspeak.sf.net/raman&quot;&gt;T. V. Raman&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.clcworld.net/&quot;&gt;Charles L Chen&lt;/a&gt;, and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://svetoslavganov.blogspot.com/&quot;&gt;Svetoslav Ganov&lt;/a&gt;) will be continuously improving the underlying APIs and access tools, and we look forward to your questions and feedback on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/android-developers&quot;&gt;Android Developers Group&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Charles Chen and Svetoslav Ganov, Software Engineering Team and T.V. Raman, Research Scientist&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8698702854482141883-6228266558936265402?l=google-opensource.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=EHIKRFPpBU4:sUGVkZDizl8:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?a=EHIKRFPpBU4:sUGVkZDizl8:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleOpenSourceBlog?i=EHIKRFPpBU4:sUGVkZDizl8:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleOpenSourceBlog/~4/EHIKRFPpBU4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Leslie Hawthorn</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8698702854482141883.post-6228266558936265402</guid>
         <pubDate>Tue, 20 Oct 2009 09:11:00 -0700</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;Gadgets API Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>iGoogle launches canvas view</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/DfrLgj_FhUA/igoogle-launches-canvas-view.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We're happy to announce the launch of the canvas view feature to iGoogle users in the U.S., rolling out over the course of the day. The canvas view feature allows gadget developers to build richer content, games, and UI for iGoogle's tens of millions of users by allowing them to build powerful full-page applications. In addition, canvas view provides developers with the opportunity to monetize their gadgets.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_xawoZs8ARtI/SPd1QTo9isI/AAAAAAAAAAo/8v2lXhfIC_U/s1600-h/iGoogle+comics+canvas+view-+final.JPG&quot;&gt;&lt;img style=&quot;margin:0px auto 10px;display:block;text-align:center;cursor:pointer;&quot; src=&quot;http://4.bp.blogspot.com/_xawoZs8ARtI/SPd1QTo9isI/AAAAAAAAAAo/8v2lXhfIC_U/s320/iGoogle+comics+canvas+view-+final.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5257800012988779202&quot; border=&quot;0&quot;/&gt;&lt;/a&gt;&lt;br /&gt;To get started, check out the documentation and examples on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/igoogle/&quot;&gt;iGoogle developer website&lt;/a&gt;. The site includes detailed information about iGoogle as well as information on upcoming OpenSocial functionality.&lt;br /&gt;&lt;br /&gt;Try out the updated version of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/ig&quot;&gt;iGoogle&lt;/a&gt; and checkout some of the great &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/ig/v2landing&quot;&gt;canvas view gadgets&lt;/a&gt; developers have already built.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-1733356800935788446?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/DfrLgj_FhUA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-1733356800935788446</guid>
         <pubDate>Thu, 16 Oct 2008 03:05:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_xawoZs8ARtI/SPd1QTo9isI/AAAAAAAAAAo/8v2lXhfIC_U/s72-c/iGoogle+comics+canvas+view-+final.JPG" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Spreadsheet gadgets: free dynamic data for your gadget</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/yUOeX-1KYgo/spreadsheet-gadgets-free-dynamic-data.html</link>
         <description>Posted by Justin Kosslyn, Google Spreadsheet Team&lt;br /&gt;&lt;br /&gt;Want to develop new features for google spreadsheets? Want a dynamic, collaborative data store for gadgets embedded in your site? If you answered “yes” to either question, you’re in luck – spreadsheet gadgets can be &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/url?q=http://spreadsheets.google.com/pub%3Fkey%3DpCQbetd-CptGXxxQIG7VFIQ&amp;amp;sa=D&amp;amp;usg=ALhdy2_E4Wt-pF3AlqvWQuIFvYF0EqGm3A&quot;&gt;embedded directly in spreadsheets&lt;/a&gt; or use spreadsheets as dynamic data stores.&lt;br /&gt;&lt;br /&gt;For example, here’s a Motion Chart gadget that’s reading data from a spreadsheet. You or a collaborator can add more data to the gadget by modifying the underlying spreadsheet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Or here's a much simpler example that just integrates Google maps with a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://spreadsheets.google.com/pub?key=p9uKGf2zCrqAnguc1LDFTNQ&quot;&gt;simple spreadsheet&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; You can extend any existing gadget into a spreadsheet gadget with the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/visualization/&quot;&gt;Google Visualization API&lt;/a&gt;. When your gadgets are ready for prime time, you can submit them to the Gallery and possibly get your gadgets featured on our Gadget picker within the Google Docs spreadsheets editor. So, whether you're just looking for a simple, dynamic database for your gadget, or want to integrate your other web products or services with Google Docs, check out this platform.&lt;br /&gt;&lt;br /&gt;For more information, please check out our new developer documentation, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://documents.google.com/support/spreadsheets/bin/answer.py?answer=96978&amp;amp;topic=14186&amp;amp;ref=gblogpost&quot;&gt;Getting Started with Spreadsheet Gadgets&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We’ll also soon be expanding our APIs to allow your gadgets to write data back to an underlying Spreadsheet.&lt;br /&gt;&lt;br /&gt;Give us feedback using our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://spreadsheets.google.com/viewform?key=prK2zS2tW4hrLxARk2pz-aw&amp;amp;ref=gblogpost&quot;&gt;Feedback Form&lt;/a&gt;, where you can also let us know if you are interested in participating in early testing of the expanded read-write API.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-380272117389942703?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/yUOeX-1KYgo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-380272117389942703</guid>
         <pubDate>Tue, 24 Jun 2008 04:17:00 -0700</pubDate>
      </item>
      <item>
         <title>iGoogle sandbox launch, includes support for canvas view and OpenSocial</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/A7UDsLUmjng/igoogle-sandbox-launch-includes-support.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fellow gadget developers, I'm happy to announce the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-code-updates.blogspot.com/2008/04/by-saurabh-mathur-igoogle-team-today.html&quot;&gt;opening of the iGoogle developer sandbox&lt;/a&gt;, which supports both OpenSocial and the new gadgets.* JavaScript API.&lt;br /&gt;&lt;br /&gt;For more information about the new sandbox, make sure to check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/igoogle/docs/gs.html&quot; id=&quot;ttdo&quot; title=&quot;getting started guide&quot;&gt;getting started guide&lt;/a&gt;. If you have questions, comments, or suggestions, join the discussion in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-Gadgets-API/&quot; id=&quot;uk7.&quot; title=&quot;iGoogle Developer Forum.&quot;&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-7409678403493923125?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/A7UDsLUmjng&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-7409678403493923125</guid>
         <pubDate>Mon, 21 Apr 2008 02:20:00 -0700</pubDate>
      </item>
      <item>
         <title>Write a collaborative gadget with one line of code</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/HStG-3YoUH0/write-collaborative-gadget-with-one.html</link>
         <description>Posted by Jeff Regan, Engineer&lt;br /&gt;&lt;br /&gt;We've launched a new feature for iGoogle that allows people to &lt;span id=&quot;wo:5&quot;&gt;&lt;i id=&quot;e-om&quot;&gt;use a gadget collaboratively&lt;/i&gt;&lt;/span&gt;, similar to Google Docs. Its now possible for multiple instances of a gadget - on the home pages of different users - to access the same &lt;span id=&quot;t0d3&quot;&gt;&lt;i id=&quot;n0fk&quot;&gt;user-preference data&lt;/i&gt;&lt;/span&gt;, the part of the gadget state that is hosted by iGoogle.&lt;br /&gt;&lt;br /&gt;We've enabled this for an initial set of existing gadgets where it makes sense - see the post on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2008/04/sharing-gadgets-just-got-better.html&quot;&gt;the Google Blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you think it makes sense for your gadget, just add this line to your the &lt;span id=&quot;ldf4&quot; style=&quot;font-family:Courier New;&quot;&gt;ModulePrefs&lt;/span&gt; section of your gadget:&lt;br /&gt;&lt;br /&gt; &lt;span id=&quot;d2_-&quot; style=&quot;font-family:Courier New;&quot;&gt;&amp;lt;optional feature=&quot;shareable-prefs&quot;&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This line tells iGoogle to present a new sharing UI for the gadget, prompting the user to specify friends to share data with and whether the friends should have read-only or write access to the shared data. The UI also offers the user a means to see who they are sharing the gadget with and modify access rights.&lt;br /&gt;&lt;br /&gt;Its a simple sharing model - last write wins, and a reload is required to see changes made by others. We look forward to seeing new collaborative gadgets that take advantage of this feature, and we can always make it better - with your &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-Gadgets-API&quot; id=&quot;jumd&quot; title=&quot;feedback&quot;&gt;feedback&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-970019858938702683?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/HStG-3YoUH0&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-970019858938702683</guid>
         <pubDate>Thu, 10 Apr 2008 07:42:00 -0700</pubDate>
      </item>
      <item>
         <title>Join us at Google I/O</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/95F55bAM1uY/join-us-at-google-io.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Google Gadgets Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I thought I'd let you all know about Google I/O, a developer event upcoming on the 28th and 29th of May at Moscone West in San Francisco. There are a lot of exciting opportunities at the event, including: breakout sessions, code labs, fireside chats, tech talks, and sessions that you, the developers, can hold yourselves.&lt;br /&gt;&lt;br /&gt;The talks will cover a variety of topics, many of which focus on gadget-related technology. Be sure not to miss &quot;Apache Shindig: Make Your Social Site an OpenSocial Container&quot; and the related code lab. The two discussions will focus on deploying OpenSocial applications, but Shindig can be used to serve gadgets on your site, social or not.&lt;br /&gt;&lt;br /&gt;For more information, check out the website: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io&quot;&gt;http://code.google.com/events/io&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-3832196071196743442?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/95F55bAM1uY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-3832196071196743442</guid>
         <pubDate>Fri, 21 Mar 2008 06:31:00 -0700</pubDate>
      </item>
      <item>
         <title>New possibilities with Gadgets!</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/kl4LuLDNI80/new-possibilities-with-gadgets.html</link>
         <description>&lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Posted by Nir Bar-Lev, Product Management&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Visualizations have always been a great way to display data and get insights. The sales graph always needs to go up, right? I’ve yet to see a boardroom with a table of data instead of interesting graphs. And of-course it’s not just about businesses and boardrooms, we all like to visualize our information.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;The problem is that many times it is hard to integrate the visual components with the data and application. It’s long and frustrating. Is this familiar?&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;Well, today we've launched the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/visualization&quot;&gt;Google Visualization API&lt;/a&gt;, which has a gadget extension that lets gadget developers develop &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/visualization/documentation/gadgetgallery.html&quot;&gt;amazing visual gadgets&lt;/a&gt; over an open API to structured data sources, the first of which being Google Spreadsheets. We’ve also added a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-visualization-api&quot;&gt;discussion group&lt;/a&gt; just for this type of Visual Gadgets and the API extensions.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;We look forward to seeing great things from you using this new API.&lt;/span&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-2323545381256081759?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/kl4LuLDNI80&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-2323545381256081759</guid>
         <pubDate>Wed, 19 Mar 2008 03:16:00 -0700</pubDate>
      </item>
      <item>
         <title>Mission: Possible - Building a Google Gadget</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/D2aNBqFIX4s/mission-possible-building-google-gadget.html</link>
         <description>Posted by Brian Shih, Google Gadgets Team&lt;br /&gt;&lt;br /&gt;Once again, our very own Dann Lee stars in a great tutorial on building gadgets. In this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=LwXMa8MAgFA&quot;&gt;&lt;u&gt;video&lt;/u&gt;&lt;/a&gt;, you'll learn how to write a gadget step-by-step. We'll take one of our popular gadgets and show you how to build your own version from scratch. The gadget example uses various API features such as tabs, dynamic-height, and analytics. By the end of the video, you'll have a better understanding on how to create your own successful gadget in addition to learning key points about distribution. Have fun!&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt; As always, if you've got further questions, please drop by the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-Gadgets-API?lnk=lr&quot;&gt;&lt;u&gt;group&lt;/u&gt;&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-1249630477866777611?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/D2aNBqFIX4s&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-1249630477866777611</guid>
         <pubDate>Mon, 17 Mar 2008 06:30:00 -0700</pubDate>
      </item>
      <item>
         <title>Calling all JavaScript developers: Hack the Day Away with Google</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleGadgetsApiBlog/~3/f_bZX-9kc8c/calling-all-javascript-developers-hack.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Daniel Lee, Google Gadgets Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;What&lt;/span&gt;: Google Developer Hackathon: JavaScript APIs Google will be holding a hackathon to get you started on our JavaScript APIs! We will be doing short introductions of the APIs and then breaking up into groups for coding and comraderie. There will be plenty of Google engineers present to ask questions and get help from. Bring your laptops and come hangout at Google. Food will be provided. There will also be prizes :) Check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/&quot;&gt;Developer Events Calendar&lt;/a&gt;.&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;When&lt;/span&gt;: Friday, February 29. There will be two sessions -- one from 2:00PM - 5:30PM and another from 6:00PM - 10:00PM. You are welcome to stay for both. Please &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledevhackathonjsapis.googlemashups.com/&quot;&gt;RSVP here&lt;/a&gt;.&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledevhackathonjsapis.googlemashups.com/&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Where&lt;/span&gt;: Google Campus: 1600 Amphitheatre Pkwy, Mountain View, CA 94043. It will be held in Seville Tech Talk.&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/maps/index.html&quot;&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Who&lt;/span&gt;: Anyone that wants to learn about some Google API's, do some coding, or ask some questions.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;The APIs&lt;/span&gt;:&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/&quot;&gt;Google Gears&lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxsearch/&quot;&gt; Google AJAX Search/Feeds&lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gadgets/&quot;&gt;Google Gadgets&lt;/a&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/maps/index.html&quot;&gt; Google Maps&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/390254169993334667-3677779233093110948?l=googlegadgetsapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleGadgetsApiBlog/~4/f_bZX-9kc8c&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brian Shih</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-390254169993334667.post-3677779233093110948</guid>
         <pubDate>Tue, 19 Feb 2008 00:22:00 -0800</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;Gears API Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Gears 0.5.21.0 Released</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/jmnBylruEbo/gears-05210-released.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Ian Fette, Gears Team&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;In conjunction with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/&quot;&gt;Google I/O&lt;/a&gt; we're releasing a new version of Gears, 0.5.21.0. This version includes minor bugfixes and three new features:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Drag &amp;amp; Drop support for dragging files into a web page and letting the web page act on those files&lt;/li&gt;&lt;li&gt;Image thumbnailing&lt;/li&gt;&lt;li&gt;Blob builder API, which allows script to build binary blobs, including valid multi-part-form-encoded blobs that contain binary file parts, which can then be uploaded using Gears.HttpRequest&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Documentation on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/&quot;&gt;http://code.google.com/apis/gears/&lt;/a&gt; will be updated soon with more details about the new features.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-1640245501669622485?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GearsApiBlog?a=jmnBylruEbo:yfmkjWje9RM:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GearsApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GearsApiBlog?a=jmnBylruEbo:yfmkjWje9RM:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GearsApiBlog?i=jmnBylruEbo:yfmkjWje9RM:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/jmnBylruEbo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Ian Fette</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-1640245501669622485</guid>
         <pubDate>Thu, 28 May 2009 02:30:00 -0700</pubDate>
      </item>
      <item>
         <title>WiFi-based geolocation, anyone?</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/oooFa45w3XU/wifi-based-geolocation-anyone.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Andrei Popescu, Gears Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Guess what? The Gears &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_geolocation.html&quot;&gt;Geolocation API&lt;/a&gt; got even better! We have just released a new version of Gears, 0.4.24.0, which contains an enhanced implementation of the Geolocation API. This new version uses WiFi access point signals to return significantly more accurate results, making it a lot more useful on laptop computers. &lt;br /&gt;&lt;br /&gt;You can find more details about this release on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-ukdev.blogspot.com/2008/10/increased-accuracy-for-location-in.html&quot;&gt;UK Google Code Blog&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-3314543925448698834?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=z3Sl5GLt&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=MUPQvzQ0&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=MUPQvzQ0&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/oooFa45w3XU&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Aaron Boodman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-3314543925448698834</guid>
         <pubDate>Tue, 21 Oct 2008 04:59:00 -0700</pubDate>
      </item>
      <item>
         <title>Gears For Safari</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/_ZEcM4GAR7M/gears-for-safari.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Jeremy Moskovich and Matt Perry, Gears Engineers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We're really excited to announce the official release of Gears for Safari on OS X (minimum requirements are Leopard 10.5.3 or Tiger 10.4.11).&lt;br /&gt;&lt;br /&gt;You can download it today from &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gears.google.com/&quot;&gt;http://gears.google.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This means that you can now access all the Gears-enabled sites (such as Zoho office, WordPress, the new YouTube uploader and Google Docs offline) in Safari.&lt;br /&gt;&lt;br /&gt;Since launch, we've increased the number of APIs available in Gears. The 0.3 release added the ability to create desktop shortcuts for websites, and the 0.4 release added Geolocation and Blobs (useful for resumable uploads of large files). All of these are now available in Safari and work exactly the same as on the other browsers Gears supports.&lt;div&gt;&lt;br /&gt;We thought it might be interesting to talk about some of the technical aspects of Gears peculiar to Safari and OS X. If you aren't a developer you can safely skip the following paragraphs and go straight to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gears.google.com/&quot;&gt;download page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When you install Gears, you'll notice that it's composed of 2 components: an NPAPI plugin which lives in &quot;/Library/Internet Plugins&quot; and an InputManager. Gears needs to load first thing upon browser startup, for cases in which the first page loaded into the browser is from the Gears offline cache. NPAPI provides no mechanism for loading that early (it only provides support for loading plugins the first time a page specifically includes them) so we needed a small InputManager to do the work for us.&lt;br /&gt;&lt;br /&gt;For browsers other than Safari that use the WebKit engine, we've provided a really simple mechanism to allow them to load Gears into their program without using the InputManager. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://fluidapp.com/&quot;&gt;Fluid&lt;/a&gt; is one example of a 3rd party browser that supports Gears this way.&lt;br /&gt;&lt;br /&gt;On the Mac, Gears desktop shortcuts are actually small applications that are designed to open the website in the same browser they were originally created from. This means that if you created them from a Fluid app they'll open in that same place and if you've got multiple versions of Firefox installed on your machine the shortcut will open in the right one.&lt;br /&gt;&lt;br /&gt;We hope you've found this post interesting. If you have any feedback we'd love to hear from you on our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/gears-users/&quot;&gt;mailing list&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-9062536032081033878?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=Q1zDhNpP&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=GpfCe38W&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=GpfCe38W&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/_ZEcM4GAR7M&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Jeremy Moskovich, Gears Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-9062536032081033878</guid>
         <pubDate>Sun, 14 Sep 2008 23:22:00 -0700</pubDate>
      </item>
      <item>
         <title>Gears 0.4 is here!</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/bqBTA3IN0Ug/gears-04-is-here.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Andrei Popescu, Gears Engineer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But where exactly is 'here'? Well, that's a question that takes on a whole new meaning with this new release of Gears: we have added a new &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_geolocation.html&quot;&gt;Geolocation API&lt;/a&gt;, which allows you to build applications that can do new and exciting things based on your users' location. You can query Gears for the user's current location using the &lt;code&gt;getCurrentPosition()&lt;/code&gt; method or you can ask Gears to notify you every time the location changes, using the &lt;code&gt;watchPosition()&lt;/code&gt; method. Of course, we take privacy issues very seriously, which is why we have a special permission dialog that allows users to decide which Web sites should have access to their location information. If you want to learn more about how the Geolocation API works, please see the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-code-updates.blogspot.com/2008/08/two-new-ways-to-location-enable-your.html&quot;&gt;Google Code blog post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another cool new feature is the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_blob.html&quot;&gt;Blob API&lt;/a&gt;. Unlike strings, blobs let you reference arbitrary binary data &amp;mdash; a first for JavaScript! Therefore, blobs can more naturally represent things like files and images, and they can be passed around efficiently. We have updated several existing APIs to work with blobs, such as WorkerPool &lt;code&gt;sendMessage()&lt;/code&gt; and HttpRequest &lt;code&gt;send()&lt;/code&gt;. And that's not all! We have also extended the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_desktop.html&quot;&gt;Desktop API&lt;/a&gt; with a new method, &lt;code&gt;openFiles()&lt;/code&gt;, which allows users to select multiple files of a particular content type, and then returns them as blobs for easy uploading or worker processing.&lt;br /&gt;&lt;br /&gt;Other major changes in Gears 0.4 include:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_httprequest.html&quot;&gt;&lt;code&gt;onprogress()&lt;/code&gt; events&lt;/a&gt; for HTTP downloads and uploads&lt;br /&gt;&lt;li&gt;Gears dialogs localized to 40 languages&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;For the full list of changes, you can check out the Gears &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/history.html&quot;&gt;API history&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you are a developer anxious to try these new APIs, first check &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gears.google.com&quot;&gt;gears.google.com&lt;/a&gt; to make sure you have Gears 0.4 installed (your browser should be updated automatically) and then browse the Gears &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_summary.html&quot;&gt;documentation pages&lt;/a&gt;. If you are a mobile developer, please make sure you also read our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlemobile.blogspot.com/2008/08/new-gears-geolocation-api-powers-mobile.html&quot;&gt;Google Mobile blog post&lt;/a&gt; to learn more details about what devices support the Geolocation API.&lt;br /&gt;&lt;br /&gt;Finally, an update on how we are doing on Web standards: in line with our earlier &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gearsblog.blogspot.com/2008/04/gears-and-standards.html&quot;&gt;promises&lt;/a&gt;, the Geolocation API is a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dev.w3.org/geo/api/spec-source.html&quot;&gt;W3C Editor's draft&lt;/a&gt; and its current design is a result of open collaboration with many other people and organizations. We plan to continue to drive this standardization effort, as well work with the community on new Web standards.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-5412153887852277878?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=2UyVp95s&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=ByZxA1sS&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=ByZxA1sS&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/bqBTA3IN0Ug&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Chris Prince, Gears Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-5412153887852277878</guid>
         <pubDate>Thu, 21 Aug 2008 17:15:00 -0700</pubDate>
      </item>
      <item>
         <title>Gears Best Practices</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/UVvmvoeKnas/gears-best-practices.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Brad Neuberg, Google Developer Programs&lt;br /&gt;&lt;br /&gt;We are constantly asked what are best practices when working with Gears. For example, what's the best way to work with the local database for performance and reliability? What are good architectures for syncing and offline applications? We've just updated the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html&quot;&gt;Gears Developer FAQ&lt;/a&gt; with a whole slew of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#Best__PracticesTOC&quot;&gt;Best Practices&lt;/a&gt;, many with sample code that you can use in your own Gears-based applications. Here's a sampling of the new additions.&lt;br /&gt;&lt;br /&gt;Best Practices for:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#bestPracticeStartGears&quot;&gt;Starting With Gears&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#offlineArchitectures&quot;&gt;Offline Architectures&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#offlineDetection&quot;&gt;Online/Offline Detection&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#bestGearsPerms&quot;&gt;Gears Permissioning&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#detectingGears&quot;&gt;Installation and Detection&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#cachingDifferentDomain&quot;&gt;Using LocalServer With Web Applications Spread Across Different Hosts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#bestPracticeDB&quot;&gt;Database Performance and Reliability&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#offlineUI&quot;&gt;Offline User Interfaces&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#maintainWorkers&quot;&gt;Maintainable Workers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#choosingNames&quot;&gt;Choosing Names for Databases and LocalServers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#storingData&quot;&gt;Storing Data on Users' Machines&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#desktopShortcuts&quot;&gt;Desktop Shortcuts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#versionDBSchema&quot;&gt;Versioning Database Schema&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#useMRS&quot;&gt;LocalServer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#syncing&quot;&gt;Syncing&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/gears_faq.html#webAppAsDesktop&quot;&gt;Giving Web Applications Similar Features to Desktop Applications&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Have fun!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-8441896088881914759?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=voDzXkZu&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=P0nvjMBN&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=P0nvjMBN&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/UVvmvoeKnas&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brad Neuberg</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-8441896088881914759</guid>
         <pubDate>Wed, 06 Aug 2008 07:46:00 -0700</pubDate>
      </item>
      <item>
         <title>Creating a Client-Side Search Engine With Gears</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/Y4kGYAdL_2Y/creating-client-side-search-engine-with.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Brad Neuberg, Gears Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've posted an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gears-pubtools.googlecode.com/svn/trunk/docs/fast_search_article.html&quot;&gt;in-depth article and tutorial&lt;/a&gt; on creating a client-side search engine with Gears. Here's a short snippet from the article:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Did you know that you can use &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; style=&quot;font-style:italic;&quot; title=&quot;Gears&quot; target=&quot;_blank&quot; href=&quot;http://gears.google.com/&quot;&gt;Gears&lt;/a&gt;&lt;span style=&quot;font-style:italic;&quot;&gt; to do fast, client-side searching of data, similar to a client-side search engine? Gears bundles &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; style=&quot;font-style:italic;&quot; title=&quot;Full-Text Search&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_database.html#sqlite_fts&quot;&gt;Full-Text Search&lt;/a&gt;&lt;span style=&quot;font-style:italic;&quot;&gt; (FTS) abilities right into its local, &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; style=&quot;font-style:italic;&quot; title=&quot;SQLite database&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_database.html&quot;&gt;SQLite database&lt;/a&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;. &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; style=&quot;font-style:italic;&quot; title=&quot;MySpace&quot; target=&quot;_blank&quot; href=&quot;http://www.myspace.com/&quot;&gt;MySpace&lt;/a&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;, for example, &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; style=&quot;font-style:italic;&quot; title=&quot;recently used this feature&quot; target=&quot;_blank&quot; href=&quot;http://gearsblog.blogspot.com/2008/05/myspace-message-center-is-now-searching.html&quot;&gt;uses this feature&lt;/a&gt;&lt;span style=&quot;font-style:italic;&quot;&gt; with their MySpace Mail application, downloading all of a user's messages for fast, client-side search. Because all of the data is local, you can do nifty things like search over the data in real-time as the user types, something that is much harder if you have to query over the network to a server to do the searching.&lt;/span&gt; &lt;p style=&quot;font-style:italic;&quot;&gt; Would you like to add the same kind of fast, local searching to your own web page and web applications? This article introduces you to PubTools Search and the Gears features that power it, namely Full-Text Search and Workers. &lt;a rel=&quot;nofollow&quot; title=&quot;PubTools Search&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gears-pubtools&quot;&gt;PubTools Search&lt;/a&gt; is an open source JavaScript library that drops a client-side search engine right into your page. You configure it with basic HTML plus a list of URLs to index. Once loaded, a search form that uses the local Gears full-text search abilities will appear in your page to quickly and locally search over the documents in real time as a user types into the search field.&lt;br /&gt;&lt;/p&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;Please note that PubTools Search is not an official Google project or Gears API; it is a project I created on my own to teach and help developers. The Gears team does not support this project.&lt;span style=&quot;font-style:italic;&quot;&gt;&lt;/span&gt; &lt;/span&gt;&lt;p&gt; The article covers the following: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;An introduction to Gears' Full-Text Search and Worker features&lt;/li&gt;&lt;li&gt;How to drop PubTools Search into your page to quickly get going&lt;/li&gt;&lt;li&gt;Deep walkthrough and dissection of how PubTools Search works internally with source code and snippets so you can use these Gears features in your own applications&lt;/li&gt;&lt;li&gt;An introduction to parts of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dojotoolkit.org/&quot;&gt;Dojo toolkit&lt;/a&gt; used in PubTools Search, using actual source from PubTools Search including a discussion on some of the techniques used in modern JavaScript development&lt;/li&gt;&lt;li&gt;Tips and tricks when working with Gears&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&lt;/span&gt;&lt;p style=&quot;text-align:center;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gears-pubtools.googlecode.com/svn/trunk/docs/fast_search_article.html&quot;&gt;Read the full article and try the demo yourself!&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-5966688518968409642?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=qPYdcWPv&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=0B24XryB&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=0B24XryB&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/Y4kGYAdL_2Y&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brad Neuberg</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-5966688518968409642</guid>
         <pubDate>Mon, 14 Jul 2008 02:35:00 -0700</pubDate>
      </item>
      <item>
         <title>Speeding Up WordPress With Gears</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/iP1EbHF_xsg/speeding-up-wordpress-with-gears.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Brad Neuberg, Gears Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wordpress.com/&quot;&gt;WordPress.com&lt;/a&gt; just recently went live with Gears support for accelerating the user-interface, and the upcoming WordPress 2.6 release will also bundle Gears.&lt;br /&gt;&lt;br /&gt;Andrew Ozz, a member of the WordPress team and the person responsible for the Gears integration wrote the following guest post on his experience working with Gears:&lt;br /&gt;&lt;br /&gt;&lt;i id=&quot;g6ve&quot;&gt;I thoroughly enjoyed working with Gears. After checking the excellent API documentation and examples, the test implementation of a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_localserver.html#ManagedResourceStore&quot;&gt;ManagedResourceStore&lt;/a&gt; in WordPress was ready to go in about an hour.&lt;br /&gt;&lt;br /&gt;After that I only had to refine the various status messages and user prompts and the first step of implementing Gears support in WordPress was ready for public testing. That was the fastest and easiest integration with another open source software I've had the opportunity to contribute to.&lt;br /&gt;&lt;br /&gt;Currently WordPress implements Gears support in a somewhat &quot;non-traditional&quot; way. It uses only the local storage to cache all static files from the admin interface on the user's computer, eliminating needless requests to the server and improving page load speed, quite significantly in some cases.&lt;br /&gt;&lt;br /&gt;Some of the limitations of this are that Gears prompts for permission on each sub-domain, so when a user has several blogs on WordPress.com, it will have to be enabled for each separately. Another is that although all files are served from the local storage in SSL mode, the browser reports that the web page is partially encrypted.&lt;br /&gt;&lt;br /&gt;The Gears support is &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.blog.wordpress.com/2008/07/02/gears/&quot;&gt;already live&lt;/a&gt; on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wordpress.com/&quot;&gt;WordPress.com&lt;/a&gt;, and is included in the next version of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wordpress.org/&quot;&gt;self-hosted WordPress&lt;/a&gt;, that is due in a few days. &lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;In my opinion Gears is more than an easy way to enable online applications to work offline. It extends the web browser into an OS independent application development platform. I won't be surprised to see some very different web enabled desktop applications built with it.&lt;/i&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-5378015087523561916?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=7ohPh1U7&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=ncyRQ99W&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=ncyRQ99W&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/iP1EbHF_xsg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brad Neuberg</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-5378015087523561916</guid>
         <pubDate>Thu, 10 Jul 2008 10:09:00 -0700</pubDate>
      </item>
      <item>
         <title>Flexi-ng your muscles with Gears</title>
         <link>http://feedproxy.google.com/~r/GearsApiBlog/~3/f9s6PMm1b1c/flexi-ng-your-muscles-with-gears.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Dion Almaer, Gears Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When a lot of developers think about Flex, they often tie it to Flash and AIR, but you can of course integrate Flex applications with many other front-end services.&lt;br /&gt;&lt;br /&gt;Mrinal Wadhwa has seen value in building Flex applications, and also likes functionality available in Gears.&lt;br /&gt;&lt;br /&gt;He wrote up an article on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://weblog.mrinalwadhwa.com/2008/06/27/flex-and-gears/&quot;&gt;enhancing Flex applications with Gears&lt;/a&gt; which had him create a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://experiments.mrinalwadhwa.com/Gears/FlexDesktopShortcut/FlexGears.html&quot;&gt;sample application&lt;/a&gt; the uses the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gears/api_desktop.html&quot;&gt;Desktop API&lt;/a&gt; in Gears.&lt;br /&gt;&lt;br /&gt;It is interesting to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://experiments.mrinalwadhwa.com/Gears/FlexDesktopShortcut/srcview/index.html&quot;&gt;take a look at the source&lt;/a&gt; to see how Flex applications tie back to plain old JavaScript.&lt;br /&gt;&lt;br /&gt;For example, the following shows you how you put JavaScript into your Flex application, and then call back to the Flex code via &lt;code&gt;thisMovie(APP_NAME).methodToCall&lt;/code&gt;:&lt;br /&gt;&lt;pre&gt;&amp;lt;JavaScript&amp;gt;&lt;br /&gt; // tells the swf if gears is installed&lt;br /&gt; function isGearsInstalled() {&lt;br /&gt; if (window.google &amp;&amp; google.gears) { //gears is installed&lt;br /&gt; thisMovie(&quot;FlexGears&quot;).testForGears(true); &lt;br /&gt; return;&lt;br /&gt; }&lt;br /&gt; //gears is not installed&lt;br /&gt; thisMovie(&quot;FlexGears&quot;).testForGears(false); &lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; &lt;br /&gt; function thisMovie(movieName) {&lt;br /&gt; if (navigator.appName.indexOf(&quot;Microsoft&quot;) != -1) {&lt;br /&gt; return window[movieName];&lt;br /&gt; } else {&lt;br /&gt; return document[movieName];&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt; // ....&lt;br /&gt;&amp;lt;/JavaScript&amp;gt;&lt;/pre&gt;Thanks to Mrinal Wadhwa for taking the time to try this all out. We enjoy seeing how people take Gears into many corners of the Web!&lt;br /&gt;&lt;br /&gt;Also, you may not have seen &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.jamesward.com/wordpress/2008/06/12/quickfix-google-app-engine-adobe-air-flex/&quot;&gt;QuickFix&lt;/a&gt;, an example application that shows how you can use Flex to talk to Google App Engine. The example is created by Dick Wall from App Engine, and James Ward from Adobe.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8349418849086791337-1773721144359837958?l=gearsblog.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=igoi6WQF&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?a=7LpOdaeY&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GearsApiBlog?i=7LpOdaeY&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GearsApiBlog/~4/f9s6PMm1b1c&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dion Almaer</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8349418849086791337.post-1773721144359837958</guid>
         <pubDate>Tue, 01 Jul 2008 04:14:00 -0700</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;App Engine Blogs&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>YouTube APIs + App Engine = YouTube Direct</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/uhEIjyodqB4/youtube-apis-app-engine-youtube-direct.html</link>
         <description>&lt;p&gt;When choosing a platform to power a new application that will be used by popular media sites, some of the criteria we look for are scalability, ease of deployment, and ease of management. As with the nature of news and media, traffic can go up and down without much warning and getting new content out of the door quickly is the name of the game. App Engine has greatly simplified development and deployment of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/direct&quot;&gt;YouTube Direct&lt;/a&gt;, a new tool built on YouTube's open APIs that allows media organizations to request, review, and re-broadcast user-submitted videos by embedding the upload functionality of YouTube directly into their own sites. By using the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/eclipse/&quot;&gt;Google Plugin for Eclipse&lt;/a&gt; to &quot;click and deploy&quot; new code changes and App Engine's admin console to manage application data, our launch partners -- most of which had never used App Engine before -- were able to easily deploy their own instances of YouTube Direct.&lt;/p&gt;&lt;p&gt;To date, media organizations like &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://voices.washingtonpost.com/prepspost-virginia/2009/11/send_us_your_best_rushing_tds.html&quot;&gt;The Washington Post&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.sfgate.com/cgi-bin/blogs/culture/detail?blogid=3&amp;entry_id=51475&quot;&gt;The San Francisco Chronicle&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.npr.org/templates/story/story.php?storyId=120318815&quot;&gt;NPR&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.huffingtonpost.com/2009/11/16/hopenhagen-ambassador-con_n_356950.html&quot;&gt;The Huffington Post&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://abcnews.go.com/GMA/&quot;&gt;ABC's Good Morning America&lt;/a&gt; are using YouTube Direct powered by App Engine's Java runtime and we hope more organizations take advantage of the platform. Visit &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/youtube/ytdirect.html&quot;&gt;YouTube Direct's developer page&lt;/a&gt; to learn more about it. The project's source is also available on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/youtube-direct&quot;&gt;Google Code&lt;/a&gt;.&lt;/p&gt;&lt;span class=&quot;byline-author&quot;&gt;Guest post by Amanda Surya, YouTube Direct team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-6227012455935404081?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/uhEIjyodqB4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-6227012455935404081</guid>
         <pubDate>Wed, 18 Nov 2009 08:52:00 -0800</pubDate>
      </item>
      <item>
         <title>Community Update: deferred, open source, and more</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/F0kAGsUPNGg/community-update-deferred-open-source.html</link>
         <description>&lt;p&gt;Here are some of the recent developments from the greater developer community.&lt;/p&gt;&lt;h3&gt;deferred.defer&lt;/h3&gt;&lt;p&gt;Nick Johnson recently added a new module to the App Engine Python SDK which allows you to use the task queue service to execute deferred function calls. This library requires minimal configuration and makes it even easier to use tasks. Using it is as simple as calling deferred.defer with the function and arguments you want to call - for example:&lt;/p&gt;&lt;pre&gt;from google.appengine.ext import deferred
deferred.defer(logging.info, &quot;In a deferred task&quot;)&lt;/pre&gt;&lt;p&gt;For more details, see the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/articles/deferred.html&quot;&gt;article&lt;/a&gt;.&lt;p&gt;&lt;h3&gt;Ruby as a runtime option&lt;/h3&gt;&lt;p&gt;The JRuby App Engine project has done a lot of work making spin-up time less painful with the most recent release. They've also had some great contributions from the growing community, such as an Image API that is ImageScience compatible. Ruby programmers can now build applications using familiar tools like Sinatra and DataMapper, while having access to the full set of App Engine APIs for Java. Follow future developments on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://jruby-appengine.blogspot.com/&quot;&gt;jruby-appengine blog&lt;/a&gt; and watch for talks by the JRuby App Engine team at upcoming conferences: &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.rubyconf.org/talks/19-scaling-on-app-engine-with-ruby-and-duby&quot;&gt;Scaling on App Engine with Ruby and Duby&lt;/a&gt;&quot; at RubyConf and &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.jrubyconf.com/schedule.html#6&quot;&gt;JRuby on Google App Engine&lt;/a&gt;&quot; at JRubyConf.&lt;/p&gt;&lt;h3&gt;An open source alternate environment: TyphoonAE&lt;/h3&gt;&lt;p&gt;Open source efforts to provide alternate hosting environments for App Engine applications continue to expand, with the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/typhoonae/&quot;&gt;TyphoonAE&lt;/a&gt; project joining the existing &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/appscale/&quot;&gt;AppScale&lt;/a&gt; project in providing a platform to run App Engine apps. TyphoonAE aims to provide a complete environment for hosting App Engine apps, and so far includes compatible datastore, memcache, task queue and XMPP implementations.&lt;/p&gt;&lt;h3&gt;gae-query-pager&lt;/h3&gt;&lt;p&gt;Juraj recently created and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gae-query-pager/&quot;&gt;open sourced&lt;/a&gt; a library for the Java runtime which &quot;generate[s] appropriate paging queries from a base query, and then using these queries to page through the data.&quot; This is intended to simplify iteration through all of the results in a very large result set.&lt;/p&gt;&lt;h3&gt;AEJ Tools&lt;/h3&gt;&lt;p&gt;If you love RESTful APIs then it would be worth your while to take a look at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/aejtools/wiki/About&quot;&gt;AEJ Tools&lt;/a&gt;. Their library provides &quot;a server module which provides a Rest style access to your datastore data, and a client module which allows you to run queries remotely using the Groovy interactive console. It can be used to run queries, store new entities or as a data import/export tool.&quot;&lt;/p&gt;&lt;h3&gt;An open source full text search library&lt;/h3&gt;&lt;p&gt;The datastore related libraries just keep right on coming. Full text search is a highly requested feature for App Engine and those behind the open source &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://github.com/DocSavage/appengine-search&quot;&gt;appengine-search project&lt;/a&gt; have create a Python library which &quot;[c]an defer indexing via Task Queue API. Uses Relation index strategy mentioned in Brett Slatkin's Google I/O talk.&quot;&lt;/p&gt;&lt;h3&gt;Testing framework&lt;/h3&gt;&lt;p&gt;Moving beyond the datastore, the developers at geewax have created an advanced testing framwork called &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gae-testbed/&quot;&gt;GAE Testbed&lt;/a&gt;. It covers everything from isolated and quick unit tests to full scale end to end tests and builds on some of the great testing tools for App Engine which are already avilable.&lt;/p&gt;&lt;h3&gt;Party Chat&lt;/h3&gt;&lt;p&gt;In other news, the folks at techwalla have migrated their party chat app to App Engine and made the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/partychapp/&quot;&gt;source code available&lt;/a&gt;. It uses the new XMPP API to simulate a chat room using your favorite XMPP client. You can read more specifics on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://techwalla.blogspot.com/search/label/partychapp&quot;&gt;their blog&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Other open source projects&lt;/h3&gt;&lt;p&gt;Check out the open source projects wiki page for more open source App Engine applications and utilities. Since the last posting, nearly 15 new applications have been added, so keep checking in as new projects are added regularly. If you have a project of your own to add, just follow the instructions at the bottom of the same page.&lt;/p&gt;&lt;p&gt;That's brings our community update to a close. We're always interested in hearing about new and interesting projects which use App Engine. If you have something to share, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-appengine/post?sendowner=1&quot;&gt;drop us a line&lt;/a&gt;.&lt;/p&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Jeff Scudder, App Engine Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-1653833870289434372?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/F0kAGsUPNGg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-1653833870289434372</guid>
         <pubDate>Tue, 10 Nov 2009 08:22:00 -0800</pubDate>
      </item>
      <item>
         <title>Audrey Roy Wins the App Engine + Twilio Developer Contest</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/3lXAaEjgrM4/audrey-roy-wins-app-engine-twilio.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_dLfQMJsmsaI/SvOH7cdymPI/AAAAAAAAADI/EMu0kmdhvNA/s1600-h/audrey-roy-1.jpg&quot;&gt;&lt;img style=&quot;cursor:pointer;cursor:hand;width:132px;height:132px;&quot; src=&quot;http://1.bp.blogspot.com/_dLfQMJsmsaI/SvOH7cdymPI/AAAAAAAAADI/EMu0kmdhvNA/s320/audrey-roy-1.jpg&quot; border=&quot;0&quot; alt=&quot;Audrey Roy&quot; id=&quot;BLOGGER_PHOTO_ID_5400809833470531826&quot;/&gt;&lt;/a&gt;
&lt;p&gt;Congratulations to Audrey Roy -- her &quot;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://price-it.appspot.com/&quot;&gt;Price It By Phone&lt;/a&gt;&quot; application won the Google App Engine + &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.twilio.com/&quot;&gt;Twilio&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://contests.twilio.com/&quot;&gt;developer contest&lt;/a&gt; that ran from September 21st to October 4th. Audrey will receive $1000 in Google App Engine credit, and a Dell Netbook from Twilio.&lt;/p&gt;&lt;p&gt;Audrey hacked together her contest submission in under 48 hours after going to an art museum and discovering that the $60 box she wanted was only $37 on Amazon.com. She used the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html&quot;&gt;Amazon Product Advertising API&lt;/a&gt; to look up the best used and new prices for books by ISBN number, using any touch tone phone.&lt;/p&gt;&lt;p&gt;Look up Amazon.com book prices by calling (877) 265-8137. Enter the book's 10-digit ISBN number after the prompt. The voice will tell you Amazon.com's lowest new and used prices for the book. Then, to see the list of books that you've already price-checked, with links to their Amazon detail pages, enter your phone number at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://price-it.appspot.com/&quot;&gt;http://price-it.appspot.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;You can find &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://contests.twilio.com/2009/11/twilio-google-app-engine.html&quot;&gt;an interview of Audrey on Twilio's blog&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Thank you to everyone who participated in the contest.&lt;/p&gt;&lt;p&gt;Twilio runs &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://contests.twilio.com/&quot;&gt;weekly developer contests&lt;/a&gt; to encourage developers to explore the many use cases, technologies, and industries where voice applications can provide useful solutions. They announce a new category each Monday along with the previous week's winner. This week's category is &quot;Twilio for Salesforce, with Appirio&quot; and the deadline is midnight on November 19th.&lt;/p&gt;&lt;p&gt;Questions? Drop us a line at help@twilio.com&lt;/p&gt;&lt;span class=&quot;byline-author&quot;&gt;Guest Post by Danielle Morrill, Director of Marketing, Twilio&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-8444605373238202162?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/3lXAaEjgrM4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-8444605373238202162</guid>
         <pubDate>Thu, 05 Nov 2009 10:03:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_dLfQMJsmsaI/SvOH7cdymPI/AAAAAAAAADI/EMu0kmdhvNA/s72-c/audrey-roy-1.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Task Queue Quota Increases</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/LreG2orsA2Y/task-queue-quota-increases.html</link>
         <description>&lt;p&gt;
Since the Task Queue API &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleappengine.blogspot.com/2009/06/new-task-queue-api-on-google-app-engine.html&quot;&gt;launched in June&lt;/a&gt;, we've been thrilled with
how many developers have started using the API.
Many developers have asked for more quota so that they can better utilize the API within their apps. We're pleased that we can now address these requests by
significantly increasing the Task Queue quotas and are happy to
announce the following changes, effective from today:
&lt;ul&gt;
&lt;li&gt;Free quota increased from 10K to 100K task insertions per day.&lt;/li&gt;
&lt;li&gt;For billing enabled apps, quota increased from 100K to 1M (one million) task insertions per day.&lt;/li&gt;
&lt;li&gt;Total execution rate (across all queues for a given app) increased from 10 to 20 task invocations per second.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt; &lt;p&gt;
Stay tuned for more enhancements to the Task Queue system in the coming months.
&lt;/p&gt; &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-1354143971515691196?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/LreG2orsA2Y&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-1354143971515691196</guid>
         <pubDate>Mon, 26 Oct 2009 10:38:00 -0700</pubDate>
      </item>
      <item>
         <title>Find App Engine news and content at reddit</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/bShAkPPNPDw/find-app-engine-news-and-content-at.html</link>
         <description>&lt;p&gt;We're pleased to announce that you can now submit and comment on App Engine news and articles on a new App Engine specific section of the popular social media site, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://reddit.com/&quot;&gt;reddit&lt;/a&gt;. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://reddit.com/r/appengine&quot;&gt;Our subreddit&lt;/a&gt; is for any articles, blog posts, or other content relevant to App Engine, and is actively moderated and maintained by the App Engine team. Registration takes seconds and allows you to submit, vote, and comment on new App Engine content. The top articles, as selected by the App Engine community, are shown in a widget on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;http://code.google.com/appengine/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Be sure to check us out on the App Engine reddit - &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://reddit.com/r/appengine&quot;&gt;http://reddit.com/r/appengine&lt;/a&gt;&lt;/p&gt; &lt;span class=&quot;byline-author&quot;&gt;Posted by Nick Johnson, App Engine Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-8226344838486553634?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/bShAkPPNPDw&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-8226344838486553634</guid>
         <pubDate>Thu, 22 Oct 2009 04:14:00 -0700</pubDate>
      </item>
      <item>
         <title>App Engine SDK 1.2.7 - Bugfix Release for Python</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/wucrp6973aw/app-engine-sdk-127-bugfix-release-for.html</link>
         <description>&lt;p&gt;
Due to two issues introduced in the 1.2.6 release of the Python SDK, we are releasing version 1.2.7 today. This is a bugfix-only release with just a few minor changes (no new features or functionality); all users of App Engine for Python should upgrade to the new version, available on our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/downloads.html&quot;&gt;Downloads page&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;
The two issues were:
&lt;ul&gt;
&lt;li&gt;
The 1.2.6 release added a key argument to the Model class constructor that broke subclasses who were calling the constructor's private arguments with positional (not named) values. The fix is to restore the original ordering, and require that the new key argument be specified as a named argument only. &lt;/li&gt;
&lt;li&gt;
The 1.2.6 release broke an interaction between remote_api and the local development app server.
&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt; &lt;p&gt;
Both are now fixed in 1.2.7.
&lt;/p&gt; &lt;p&gt;
There is no corresponding release for the Java language version of App Engine (the Java SDK remains at 1.2.6).
&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-2299490691350206085?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/wucrp6973aw&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-2299490691350206085</guid>
         <pubDate>Thu, 15 Oct 2009 05:57:00 -0700</pubDate>
      </item>
      <item>
         <title>App Engine SDK 1.2.6 Released with Incoming Email, App Deletion, and more!</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/syPiClHbJCE/app-engine-sdk-126-released-with.html</link>
         <description>&lt;p&gt;
The App Engine team is psyched to present version 1.2.6 of our SDK for both runtimes, Python and Java. This releases contains plenty of improvements and bugfixes, along with some exciting new features:
&lt;/p&gt; &lt;p&gt;
&lt;b&gt;Incoming Email&lt;/b&gt; - Your App Engine app has been able to &lt;i&gt;send&lt;/i&gt; email for some time ... but now, with 1.2.6, your app can also &lt;i&gt;receive&lt;/i&gt; email. After enabling mail as an inbound service (just like XMPP), users can email your application at &lt;i&gt;whatever&lt;/i&gt;@&lt;i&gt;yourappid&lt;/i&gt;.appspotmail.com. Inbound messages are converted to HTTP requests (again, just like XMPP) which you can receive via webhook handler. Docs for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/docs/python/mail/receivingmail.html&quot;&gt;Python&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/docs/java/mail/receiving.html&quot;&gt;Java&lt;/a&gt;.
&lt;/p&gt; &lt;p&gt;
&lt;b&gt;Delete an App&lt;/b&gt; - Our developers have been quite vocal with their desire to delete an App Engine application once it is no longer used (It's one of the top 5 most requested features on our issue tracker). Well, this feature is now available via the Admin Console! Just visit the Application Settings page for more information. Please be careful when deleting an app - the appid can never be reused after deletion. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/kb/adminconsole.html#delete_app&quot;&gt;Learn more&lt;/a&gt;.
&lt;/p&gt; &lt;p&gt;
&lt;b&gt;Datastore Stats&lt;/b&gt; - You can now see more detailed statistics about how your application data is stored in the Admin Console. This information can also be accessed programmatically. Docs for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/docs/python/datastore/stats.html&quot;&gt;Python&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/docs/java/datastore/stats.html&quot;&gt;Java&lt;/a&gt;.
&lt;/p&gt; &lt;p&gt;
More details can be found in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/googleappengine/wiki/SdkReleaseNotes&quot;&gt;Release Notes&lt;/a&gt;. To download the new SDK and get coding, please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/downloads.html&quot;&gt;Downloads&lt;/a&gt; page.
&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-36147908234129891?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/syPiClHbJCE&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-36147908234129891</guid>
         <pubDate>Tue, 13 Oct 2009 08:50:00 -0700</pubDate>
      </item>
      <item>
         <title>Interactive XMPP demos</title>
         <link>http://feedproxy.google.com/~r/GoogleAppEngineBlog/~3/b9kOPwEXBXI/interactive-xmpp-demos.html</link>
         <description>&lt;p&gt;We hope you've been enjoying the new XMPP API we shipped in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleappengine.blogspot.com/2009/09/app-engine-sdk-125-released-for-python.html&quot;&gt;App Engine release 1.2.5&lt;/a&gt;. We're always impressed with the cool scenarios our developers create!&lt;/p&gt;
&lt;p&gt;A couple of Google engineers found the time to create cool App Engine demos using the XMPP API and we'd like to share them with you.&lt;/p&gt;
&lt;p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://crowdguru.appspot.com/&quot;&gt;CrowdGuru&lt;/a&gt; - this app, courtesy of App Engine Developer Programs Engineer &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.notdot.net/&quot;&gt;Nick Johnson&lt;/a&gt;, is a fun trivia game which crowdsources answers. Add crowdguru@appspot.com to your IM list and ask it a question. You can read up on full details of the design and implementation &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/articles/using_xmpp.html&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Multi-Chat - David Symonds wasn't satisfied with simple person-to-person IM, so he built an IRC-like chat room system! Add multi-chat@appspot.com to your IM list and message it &quot;/help&quot; to find out how you can join channels and start chatting it up. Full source is available &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-app-engine-samples/source/browse/trunk/multi-chat?spec=svn116&amp;r=116&quot;&gt;here&lt;/a&gt;, and a basic web interface is &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://multi-chat.appspot.com/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Of course, please note that these apps are solely intended to demonstrate the power of the XMPP API - they are not official products in any form, nor are they supported. In particular, don't send any private or personally identifying information when chatting with these bots.&lt;/p&gt;
&lt;p&gt;But definitely try them out and let us know what cool app experiences you are building with App Engine!&lt;/p&gt; &lt;span class=&quot;byline-author&quot;&gt;Posted by the Google App Engine Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8501956666581132164-6941524993369703129?l=googleappengine.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleAppEngineBlog/~4/b9kOPwEXBXI&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>The App Engine Team</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-8501956666581132164.post-6941524993369703129</guid>
         <pubDate>Sun, 04 Oct 2009 23:40:00 -0700</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;Data API Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Import Scans or Go Multilingual</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/7fLLv6lbSO4/import-scans-or-go-multilingual.html</link>
         <description>&lt;div&gt;About a month ago, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledataapis.blogspot.com/2009/08/pdfs-revisions-folder-sharing-in.html&quot;&gt;we launched&lt;/a&gt; v3.0 of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/overview.html&quot;&gt;Documents List Data API&lt;/a&gt; and promised more features were on the way. Well today, we're releasing two experimental features in the API: OCR and Document Translation. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The first, Optical Character Recognition (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Optical_character_recognition&quot;&gt;OCR&lt;/a&gt;), allows your application to create editable Google Documents from high-resolution images containing text (such as faxes or scanned letters). To perform OCR on a .png, .jpg, or .gif upload, add the &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#006600;&quot;&gt;ocr=true&lt;/span&gt;&lt;/span&gt; parameter onto your upload request:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#006600;&quot;&gt;POST /feeds/default/private/full?ocr=true HTTP/1.1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OCR will only work well on high-resolution images. The quality of the extracted text isn't perfect yet, but we're busy improving it!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Secondly, we have integrated &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://translate.google.com/&quot;&gt;Google Translate&lt;/a&gt; into the API. As a result, you can translate a document during upload. Simply add the &lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#006600;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;targetLanguage&lt;/span&gt;&lt;/span&gt; and &lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#006600;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;sourceLanguage &lt;/span&gt;&lt;/span&gt;parameters to your upload request:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#006600;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;POST /feeds/default/private/full/?targetLanguage=&lt;b&gt;de&lt;/b&gt;&amp;amp;sourceLanguage=&lt;b&gt;en&lt;/b&gt; HTTP/1.1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:#006600;&quot;&gt;sourceLanguage&lt;/span&gt;&lt;/span&gt; is omitted, we'll try to auto detect the document's language. All languages supported by Google Translate (full list &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://translate.google.com/&quot;&gt;here&lt;/a&gt;) are supported in the API. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As always, see the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#SpecialFeatures&quot;&gt;documentation&lt;/a&gt; for details. There's also a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlecodesamples.com/docs/php/ocr.php&quot;&gt;live demo&lt;/a&gt; (source will be available soon) up at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlecodesamples.com/&quot;&gt;googlecodesamples.com&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Jaron Schaeffer &amp;amp; Eric Bidelman, Google Docs Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-5048112964445323242?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=7fLLv6lbSO4:YwGEH83rt18:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=7fLLv6lbSO4:YwGEH83rt18:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=7fLLv6lbSO4:YwGEH83rt18:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/7fLLv6lbSO4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Eric (Google)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-5048112964445323242</guid>
         <pubDate>Sun, 27 Sep 2009 10:32:00 -0700</pubDate>
      </item>
      <item>
         <title>New Data API for Google Sites!</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/h3QuPVIqNDI/new-data-api-for-google-sites.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_3OiTHGI1Oew/Srs5a0u1s3I/AAAAAAAAA_o/8hjOMd1JXXM/s1600-h/dh5rqqc_61cm9q2jdn_b.png&quot;&gt;&lt;img style=&quot;float:right;margin:0 0 10px 10px;cursor:pointer;cursor:hand;width:175px;height:175px;&quot; src=&quot;http://2.bp.blogspot.com/_3OiTHGI1Oew/Srs5a0u1s3I/AAAAAAAAA_o/8hjOMd1JXXM/s320/dh5rqqc_61cm9q2jdn_b.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5384960912446042994&quot;/&gt;&lt;/a&gt;We're very excited to announce a brand new Data API for Google Sites!&lt;br /&gt;&lt;br /&gt;If you're new to the application, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://sites.google.com/&quot;&gt;Google Sites&lt;/a&gt; is a powerful collaborative content creation tool that can be used to centralize file attachments, information from other Google applications (like Google Docs, Google Calendar, YouTube and Picasa), and free-form content. Creating a site together is as easy as editing a document, and you always control who has access, whether it's just yourself, your team, or your whole organization. You can even publish sites to the world.&lt;br /&gt;&lt;br /&gt;Now, all of your Google Sites content can be accessed using the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gdata&quot;&gt;Google Data protocol&lt;/a&gt;. That means porting over an old webpage or backing up an existing site got much easier! In fact, check out our open-source &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-sites-liberation/&quot;&gt;Google Sites import/export tool&lt;/a&gt; that does just that.&lt;br /&gt;&lt;br /&gt;So what can you do with the Google Sites API? Glad you asked! The API supports most of the functionality found in Google Sites, which includes the ability to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Retrieve, create, modify, and delete pages and content.&lt;/li&gt;&lt;li&gt;Upload/download attachments.&lt;/li&gt;&lt;li&gt;Review the revision history across a site.&lt;/li&gt;&lt;li&gt;Display recent user activity.&lt;/li&gt;&lt;/ul&gt;For now, the API is being released in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/labs/&quot;&gt;labs&lt;/a&gt; as we continue to rapidly add and change features. You can get the full scoop in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/sites/&quot;&gt;documentation&lt;/a&gt;. There, you'll also find an updated &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-java-client/downloads/list&quot;&gt;Java library&lt;/a&gt; and several &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/sites/code.html&quot;&gt;code samples&lt;/a&gt; to get you started. We'll be updating the other clients soon.&lt;br /&gt;&lt;br /&gt;Visit us in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-sites-data-api&quot;&gt;new developer forum&lt;/a&gt; if you have questions!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Eric Bidelman, Google Sites API Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-6940198833117713896?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=h3QuPVIqNDI:1lLfzU9YCoo:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=h3QuPVIqNDI:1lLfzU9YCoo:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=h3QuPVIqNDI:1lLfzU9YCoo:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/h3QuPVIqNDI&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Eric (Google)</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-6940198833117713896</guid>
         <pubDate>Wed, 23 Sep 2009 19:13:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_3OiTHGI1Oew/Srs5a0u1s3I/AAAAAAAAA_o/8hjOMd1JXXM/s72-c/dh5rqqc_61cm9q2jdn_b.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>PDFs, Revisions, Folder Sharing in the DocList API</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/Y3mr5lQgNcg/pdfs-revisions-folder-sharing-in.html</link>
         <description>&lt;img style=&quot;float:left;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:100px;height:100px;&quot; src=&quot;http://1.bp.blogspot.com/_0B4-pcSxQZ0/Sphj1tM8GGI/AAAAAAAABvo/_NUigGmL7cc/s200/dh5rqqc_58g8cb4dg6_b.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5375155929584769122&quot;/&gt;&lt;br /&gt;&lt;div id=&quot;8blg0&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:Arial;color:#333333;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color:rgb(0, 0, 0);font-family:Verdana;font-size:13px;&quot;&gt;&lt;span id=&quot;w91l&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;r-zi&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;div id=&quot;lvkz&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;You filed features...we listened!&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id=&quot;yod1&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;ud7o&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span id=&quot;e:ro&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;s5rl&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;2l9ns&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;Today, &lt;/span&gt;we're pleased to announce Version 3.0 of the &lt;/span&gt;&lt;span id=&quot;0r-zi&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/overview.html&quot; id=&quot;0w91l&quot; title=&quot;http://code.google.com/apis/documents/overview.html&quot; style=&quot;color:rgb(85, 26, 139);&quot;&gt;Documents List Data API&lt;/a&gt;, which includes PDF upload/download (the most requested feature on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-issues/issues/list?q=label:API-DocumentsList&quot; id=&quot;p6g6&quot; title=&quot;our issue tracker&quot;&gt;our issue tracker&lt;/a&gt;). &lt;/span&gt;&lt;span id=&quot;1r-zi&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;V3 also introduces a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/changelog.html#release-Version-3.0&quot; id=&quot;eknk&quot; title=&quot;slew of new features&quot; style=&quot;color:rgb(85, 26, 139);&quot;&gt;slew of new features&lt;/a&gt;, such as folder sharing, domain and group level ACLs, document revision history, and feed URIs that are more user friendly and RESTful. For example:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;blg0&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;4oknp&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span id=&quot;5oknp&quot; style=&quot;background-color:rgb(255, 255, 255);color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;t0._&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;Fetch ACLs: &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; id=&quot;2e2.e&quot;&gt;&lt;span id=&quot;0t0._&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family:'courier new';&quot;&gt;GET /feeds/default/private/full/&amp;lt;resource_id&amp;gt;/acl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;tizw&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span id=&quot;0tizw&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;&lt;div id=&quot;5cos:&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; id=&quot;6cos:&quot; style=&quot;font-family:Arial, sans-serif;color:#333333;&quot;&gt;&lt;span id=&quot;9cos:&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;bb8e&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;5z9.b&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;Fetch revision history: &lt;span class=&quot;Apple-style-span&quot; id=&quot;3e2.e&quot; style=&quot;font-family:'Courier New';&quot;&gt;GET /feeds/default/private/full/&amp;lt;resource_id&amp;gt;/revisions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;tr4-&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; id=&quot;0tr4-&quot; style=&quot;font-family:'Courier New';color:#333333;&quot;&gt;&lt;span id=&quot;1tr4-&quot; style=&quot;background-color:rgb(255, 255, 255);color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;l206&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;Fetch folder contents: &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; id=&quot;tfxm&quot;&gt;GET /feeds/default/private/full/&amp;lt;folder_resource_id&amp;gt;/contents&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;2blg0&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;5blg0&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span id=&quot;6blg0&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;7blg0&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;We've also made impro&lt;span id=&quot;xyx4&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;vements to the API's latency and stability -- a major request by users over the past several months. &lt;/span&gt;&lt;span id=&quot;lv8d&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;0xyx4&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;1xyx4&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;We're hop&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;2xyx4&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;3xyx4&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;ing this latest version will allow developers to create even better and more interesting integrations with &quot;The Cloud&quot;. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;cos:&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;8blg0&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;div id=&quot;md_1&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span id=&quot;1j5bt&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;7r-zi&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;v5_v&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;gj46&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;For &lt;/span&gt;&lt;span id=&quot;t0qf&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;kd43&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;0gj46&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;the full list of features and deprecations, check out the &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;2gj46&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html&quot; id=&quot;rcbv&quot; title=&quot;documentation&quot; style=&quot;color:rgb(85, 26, 139);&quot;&gt;documentation&lt;/a&gt; &lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;1v5_v&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;v-lt&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;&lt;span id=&quot;0t0qf&quot; style=&quot;background-color:rgb(243, 243, 243);&quot;&gt;and &lt;/span&gt;&lt;span id=&quot;b3xf&quot; style=&quot;background-color:rgb(243, 243, 243);color:rgb(51, 51, 51);&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/changelog.html#release-Version-3.0&quot; id=&quot;zk7p&quot; title=&quot;release notes&quot; style=&quot;color:rgb(85, 26, 139);&quot;&gt;&lt;span id=&quot;0kd43&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;API release notes&lt;/span&gt;&lt;/a&gt;&lt;span id=&quot;1kd43&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;.&lt;/span&gt;&lt;/span&gt; If you're a Java developer, there's an updated &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/documents/docs/3.0/developers_guide_java.html&quot; id=&quot;f:dn&quot; title=&quot;updated Java Developer's Guide&quot;&gt;Java Developer's Guide&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-java-client/source/browse/trunk/java/sample/docs/&quot; id=&quot;ffb0&quot; title=&quot;sample&quot;&gt;sample app&lt;/a&gt; . A new version of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-objectivec-client/&quot; id=&quot;mgde&quot; title=&quot;Objective-C library&quot;&gt;Objective-C library&lt;/a&gt; is also available. Look for updates to the other client libraries and developer guides in the coming weeks. If &lt;/span&gt;&lt;span id=&quot;bzm8&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;you have questions, please visit us in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-documents-list-api&quot; id=&quot;x_rf&quot; title=&quot;new developer forum&quot;&gt;new developer forum&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;bx:.&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;o7iu&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;div id=&quot;3bzm8&quot; style=&quot;margin-top:0px;margin-bottom:0px;text-align:center;&quot;&gt;&lt;span id=&quot;4bzm8&quot; style=&quot;color:rgb(51, 51, 51);&quot;&gt;&lt;span id=&quot;4v5_v&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;5bzm8&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;&lt;span id=&quot;6bzm8&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;Version 3.0 resolves the following issues: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id=&quot;6v5_v&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;span id=&quot;7bzm8&quot; style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;&lt;span id=&quot;8bzm8&quot; style=&quot;background-color:rgb(243, 243, 243);&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=591&quot; id=&quot;a270&quot; title=&quot;591&quot; style=&quot;color:rgb(85, 26, 139);&quot;&gt;&lt;span id=&quot;9bzm8&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;591&lt;/span&gt;&lt;/a&gt;&lt;span id=&quot;10bzm8&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;, &lt;/span&gt;&lt;span id=&quot;11bzm8&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=1132&quot; id=&quot;rpsy&quot; title=&quot;1132&quot;&gt;1132&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=923&quot; id=&quot;dc23&quot; title=&quot;923&quot;&gt;923&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=1099&quot; id=&quot;pa10&quot; title=&quot;1099&quot;&gt;1099&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-issues/issues/detail?id=1368&quot; id=&quot;c3.1&quot; title=&quot;1368&quot;&gt;1368&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div id=&quot;2ik75&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;div id=&quot;x:df&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div id=&quot;2x:df&quot; style=&quot;margin-top:0px;margin-bottom:0px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; id=&quot;3x:df&quot; style=&quot;font-family:Arial, sans-serif;color:#333333;&quot;&gt;&lt;span id=&quot;u_bf&quot; style=&quot;color:rgb(102, 102, 102);&quot;&gt;&lt;span id=&quot;ft9:&quot; style=&quot;font-family:Arial, sans-serif;&quot;&gt;Posted by Eric Bidelman, Google Docs Team&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-563778234411879542?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=Y3mr5lQgNcg:JoCZgMgj7CM:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=Y3mr5lQgNcg:JoCZgMgj7CM:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=Y3mr5lQgNcg:JoCZgMgj7CM:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/Y3mr5lQgNcg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>zach.maier</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-563778234411879542</guid>
         <pubDate>Fri, 28 Aug 2009 08:50:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_0B4-pcSxQZ0/Sphj1tM8GGI/AAAAAAAABvo/_NUigGmL7cc/s72-c/dh5rqqc_58g8cb4dg6_b.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>New Contacts Data API features are here!</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/Z4htBut6tcI/new-contacts-data-api-features-are-here.html</link>
         <description>A new version of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/contacts/docs/3.0/developers_guide.html&quot;&gt;Contacts Data API&lt;/a&gt; has been made available. V3.0 of the API brings greatly expanded data schema, including support for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/contacts/docs/3.0/migration_guide.html#StructuredUnstructuredInteractions&quot;&gt;structured name and postal address&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/contacts/&quot;&gt;&lt;img style=&quot;float:right;margin:0 0 10px 10px;cursor:pointer;cursor:hand;width:100px;height:96px;border:0;&quot; src=&quot;http://2.bp.blogspot.com/_O2Gca6SGnog/Si6AZgbjd6I/AAAAAAAAAEk/DT4OBzkQ04A/s400/gdata-contacts-nobg.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5345350983425947554&quot;/&gt;&lt;/a&gt;&lt;br /&gt;We have vastly extended the data schema for contacts to allow faithful synchronization of Google Contacts with other widely used contact databases, like Microsoft Outlook or Apple's Address Book. Besides the support for structured name and postal address, another highlight is the inclusion of the oft-requested &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/contacts/docs/3.0/reference.html#gcBirthday&quot;&gt;birthday field&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We hope the new version of the Contacts Data API will allow developers to easily create more sophisticated and universally compatible contacts-enabled applications. For any questions about the new features, please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-contacts-api?pli=1&quot;&gt;Google Contacts groups page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Lukasz Fryz, Contacts Data API Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-8455521239890040301?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=Z4htBut6tcI:B4z087rnark:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=Z4htBut6tcI:B4z087rnark:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=Z4htBut6tcI:B4z087rnark:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/Z4htBut6tcI&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brandon Bilinski</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-8455521239890040301</guid>
         <pubDate>Tue, 09 Jun 2009 01:25:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_O2Gca6SGnog/Si6AZgbjd6I/AAAAAAAAAEk/DT4OBzkQ04A/s72-c/gdata-contacts-nobg.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>OAuth Playground: Open-sourced</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/joCBHaY3_0A/oauth-playground-open-sourced.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlecodesamples.com/oauth_playground/&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:221px;height:71px;border:0;&quot; src=&quot;http://3.bp.blogspot.com/_O2Gca6SGnog/ShR68RyDSaI/AAAAAAAAAEU/28j8hKTAhXk/s400/dh5rqqc_3g4mcx8gz_b.jpg&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5338026634324953506&quot;/&gt;&lt;/a&gt;&lt;br /&gt;The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlecodesamples.com/oauth_playground/&quot;&gt;OAuth Playground&lt;/a&gt; has proven to be an invaluable tool for developers. For one, it's handy for experimenting with the Google Data APIs, but more importantly, it gives developers the ability to debug their own OAuth implementations. Anyone who tinkered with the open protocol knows it has nuances! Many first-timers fall into the same pitfalls, so to help remedy that, I've decided to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-samples/source/browse/#svn/trunk/oauth_playground&quot;&gt;open-source&lt;/a&gt; the Playground in hopes that other OAuth service providers will create similar tools for their own APIs.&lt;br /&gt;&lt;br /&gt;A lot has happened in the OAuth space since the Playground's &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledataapis.blogspot.com/2008/09/point-click-understand-oauth.html&quot;&gt;release&lt;/a&gt; last fall. Included in that is Google's growing number of OAuth-related features and resources to aid developers. Here are just a few:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/accounts/docs/OAuth.html#GoogleAppsOAuth&quot;&gt;2 legged OAuth&lt;/a&gt; for Google Apps administrators&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/accounts/docs/OpenID.html#oauth&quot;&gt;Hybrid (OpenID + OAuth) protocol&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Client library OAuth samples in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-python-client/source/browse/trunk/samples/oauth/oauth_example.py&quot;&gt;Python&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gdatatips.blogspot.com/2009/04/oauth-in-google-app-engine.html&quot;&gt;App Engine Python&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-java-client/source/browse/trunk/java/sample/oauth/OAuthExample.java&quot;&gt;Java&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/googleappengine/source/browse/#svn/trunk/java/demos/oauth&quot;&gt;App Engine Java&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-samples/source/browse/trunk/hybrid/index.php&quot;&gt;PHP&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Article: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gdata/articles/oauth.html&quot;&gt;Using OAuth with the Google Data APIs&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Article: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gdata/oauth.html&quot; style=&quot;text-decoration:none;&quot;&gt;Using OAuth in the Google Data API Client Libraries&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;The feedback we have heard is that OAuth is difficult to implement and that it's tough to grasp the interactions between user, consumer and service provider. By open-sourcing the OAuth Playground, we really want to make it easier for developers to understand the OAuth flow and debug their own OAuth applications. &lt;br /&gt;&lt;br /&gt;For even more information on OAuth and the OAuth proxy, check out our talk at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/&quot;&gt;Google I/O&lt;/a&gt; entitled &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/sessions/UsingGoogleDataApisOauthOpenSocial.html&quot;&gt;Using Google Data APIs and OAuth to Create an OpenSocial Gadget&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have any questions, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-Accounts-API&quot;&gt;ask in the forums&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Eric Bidelman, Google Data APIs Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-3894527014272310376?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=joCBHaY3_0A:eaRAe5S26UE:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=joCBHaY3_0A:eaRAe5S26UE:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=joCBHaY3_0A:eaRAe5S26UE:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/joCBHaY3_0A&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brandon Bilinski</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-3894527014272310376</guid>
         <pubDate>Wed, 20 May 2009 07:48:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://3.bp.blogspot.com/_O2Gca6SGnog/ShR68RyDSaI/AAAAAAAAAEU/28j8hKTAhXk/s72-c/dh5rqqc_3g4mcx8gz_b.jpg" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Google Analytics Data Export API has Launched!</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/46DVgkdSOJ4/google-analytics-data-export-api-has.html</link>
         <description>We are very excited to announce a new member to the Google Data API family, Google Analytics! For those of you who don't know, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/analytics/&quot;&gt;Analytics&lt;/a&gt; is a powerful web analysis tool that provides incredible amounts of data about where visitors come from, what they do while on your site and where they go from there. The best part is that it's free for everyone!&lt;br /&gt;&lt;br /&gt;The new Google Analytics Data Export API is now publicly available to all Analytics users as a Labs API that provides an easy to use way to get read-only access to your Analytics data. All report data that is available to you through the web interface will also be available through this new Google Data API. In addition to the standard Google Data API protocol of making requests over HTTP and accessing your data in XML, we will also be providing both a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/analytics/docs/gdata/1.0/gdataJava.html&quot;&gt;Java&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/analytics/docs/gdata/1.0/gdataJavascript.html&quot;&gt;JavaScript&lt;/a&gt; client library to make it even easier to integrate with your Analytics information. &lt;br /&gt;&lt;br /&gt;With the availability of this API, you all now have a standardized way to integrate your Google Analytics Data with your own business data to extend existing products or create new standalone applications. Want to see custom views of your Analytics data? Create your own dashboards and gadgets that pull from the Analytics API. Want features that aren't included in the web interface? Build them yourself instead of waiting for them to be developed. Take a look at this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.analyticsmarket.com/mobileapps/mobile-ga/android&quot;&gt;Android application&lt;/a&gt; from Actual Metrics or this &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.desktop-reporting.com/products.html&quot;&gt;desktop application&lt;/a&gt; from Desktop-Reporting to see examples of what some developers have already done.&lt;br /&gt;&lt;br /&gt;To dive in and begin writing your own apps, make sure you go to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/analytics/&quot;&gt;Analytics API&lt;/a&gt; section of the Google Code website to find all of the necessary documentation. For key announcements, code changes and updates, sign up for the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-analytics-api-notify?lnk&quot;&gt;Google Analytics API Notify&lt;/a&gt; e-mail group which we promise will only send out e-mails when there is something that directly affects developers. Lastly, to share ideas and and get feedback from other developers, join the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-analytics-api&quot;&gt;Google Analytics API Group&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;For more details on Google Analytics and the new API, check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://analytics.blogspot.com/&quot;&gt;Analytics blog&lt;/a&gt;. For more information about building gadgets with the JavaScript library and other topics related to the Google Data APIs, make sure to check out the website for our developer conference, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/&quot;&gt;Google I/O&lt;/a&gt;, which will be taking place from May 27-28th in San Francisco.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;[Updated on 05/22/2009] We are happy to also announce that we added the Google Analytics API to the Objective-C client library. Check out the library &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-objectivec-client/source/browse/#svn/trunk/Source/Clients/Analytics&quot;&gt;here&lt;/a&gt; and if you have any questions, please read the new post on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/gdata-objectivec-client/browse_thread/thread/dab51ac1801a25a2?pli=1&quot;&gt;Objective-C group page&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Nick Mihailovski, Google Analytics API Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-8627286151206831032?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=46DVgkdSOJ4:fLcUypKwKbQ:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=46DVgkdSOJ4:fLcUypKwKbQ:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=46DVgkdSOJ4:fLcUypKwKbQ:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/46DVgkdSOJ4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brandon Bilinski</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-8627286151206831032</guid>
         <pubDate>Tue, 21 Apr 2009 03:08:00 -0700</pubDate>
      </item>
      <item>
         <title>Friends, Activities and You - Become a Socialite the .NET Way</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/DShMx1A4LAA/friends-activites-and-you-become.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Frank Mantek, Google Data APIs Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-gdata/downloads/list&quot;&gt;new .NET SDK&lt;/a&gt; has been released and is available for download. There are a lot of changes, and among the highlights you will find:&lt;br /&gt;&lt;br /&gt;- Updated support for YouTube V2&lt;br /&gt;- Support for Google Contacts V2&lt;br /&gt;- Support for Google Documents List V2&lt;br /&gt;&lt;br /&gt;For those 3 services, there is now a vertical object model that allows you to use local LINQ queries. Please go through the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-gdata.googlecode.com/svn/docs/folder55/N_Google_YouTube.htm&quot;&gt;Google.YouTube&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-gdata.googlecode.com/svn/docs/folder57/N_Google_Contacts.htm&quot;&gt;Google.Contacts&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-gdata.googlecode.com/svn/docs/folder57/N_Google_Documents.htm&quot;&gt;Google.Documents&lt;/a&gt; namespaces and see what's new there. We have some documentation for it here:&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-gdata.googlecode.com/svn/trunk/clients/cs/docs/AdditionalContent/YouTubeLinqExamples.html&quot;&gt;http://google-gdata.googlecode.com/svn/trunk/clients/cs/docs/AdditionalContent/YouTubeLinqExamples.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The new Google Document project template in Visual Studio shows you how to retrieve all documents and populate a treeview with those documents. In addition there is a Document List Exporter sample application to showcase the new export functionality of the Google Documents service. &lt;br /&gt;&lt;br /&gt;Last, but not least, there is the Notifier for YouTube sample application which showcases the activity feeds YouTube is exposing. You can subscribe to events from your friends and other YouTube users and get notified whenever they leave their marks in the YouTube universe. The sample is also available as a separate download on the download page mentioned before. &lt;br /&gt;&lt;br /&gt;The complete release notes can be found &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-gdata.googlecode.com/svn/docs/RELEASE_NOTES.HTML&quot;&gt;here&lt;/a&gt;, and along with the notes is a list of all of the bugs fixed in this release. To report new bugs, you can go to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-gdata/issues/list&quot;&gt;.NET library issue tracker&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-4321276901121604152?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=DShMx1A4LAA:FCRYrjmbECA:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?a=DShMx1A4LAA:FCRYrjmbECA:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OfficialGoogleDataApisBlog?i=DShMx1A4LAA:FCRYrjmbECA:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/DShMx1A4LAA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brandon Bilinski</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-4321276901121604152</guid>
         <pubDate>Thu, 05 Mar 2009 00:58:00 -0800</pubDate>
      </item>
      <item>
         <title>Google Data On Rails</title>
         <link>http://feedproxy.google.com/~r/OfficialGoogleDataApisBlog/~3/Lt4Y0fgC9CE/google-data-on-rails.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Eric Bidelman, Google Data APIs Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&quot;Where's Ruby on the list of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gdata/clientlibs.html&quot;&gt;client libraries&lt;/a&gt;?&quot;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gdata/articles/gdata_on_rails.html&quot;&gt;&lt;img style=&quot;float:right;margin:0 0 10px 10px;cursor:pointer;cursor:hand;width:200px;height:142px;border:0;&quot; src=&quot;http://4.bp.blogspot.com/_O2Gca6SGnog/SaLZFHcDGaI/AAAAAAAAAEM/jiwWvurGE5Q/s200/dh5rqqc_3c5c446g8_b.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5306041992915130786&quot;/&gt;&lt;/a&gt;&lt;br /&gt;My colleague Jeff Fisher recently open sourced a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-ruby-util/&quot;&gt;Ruby utility library&lt;/a&gt; for the Google Data APIs. Mind you, it's not a full-blown client library, but it does handle the fundamentals like authentication and basic XML manipulation using the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.germane-software.com/~ser/software/rexml/&quot;&gt;REXML&lt;/a&gt; module.&lt;br /&gt;&lt;br /&gt;We've got a comprehensive &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gdata/articles/gdata_on_rails.html&quot;&gt;article &lt;/a&gt;and sample application, the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://doclistmanager.googlecodesamples.com/&quot;&gt;DocList Manager&lt;/a&gt; (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gdata-samples/source/browse/#svn/trunk/doclist/DocListManager&quot;&gt;full source&lt;/a&gt;), to demonstrate the basics.&lt;br /&gt;&lt;br /&gt;Please visit us in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-help-dataapi&quot;&gt;Google Data APIs forum&lt;/a&gt; to ask questions or submit feedback.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/32786009-1963919351263071640?l=googledataapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/OfficialGoogleDataApisBlog?a=x0NWxIkb&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/OfficialGoogleDataApisBlog?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/OfficialGoogleDataApisBlog?a=asbchaAV&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/OfficialGoogleDataApisBlog?i=asbchaAV&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OfficialGoogleDataApisBlog/~4/Lt4Y0fgC9CE&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Brandon Bilinski</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-32786009.post-1963919351263071640</guid>
         <pubDate>Mon, 23 Feb 2009 01:04:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_O2Gca6SGnog/SaLZFHcDGaI/AAAAAAAAAEM/jiwWvurGE5Q/s72-c/dh5rqqc_3c5c446g8_b.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>&lt;h1&gt;Desktop API Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Tip: Build a quality gadget</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/ERDdmEsWlMc/tip-build-quality-gadget.html</link>
         <description>What makes a quality gadget?&lt;br /&gt;&lt;ul&gt;&lt;li&gt; &lt;span style=&quot;font-weight:bold;&quot;&gt;Platform specification:&lt;/span&gt; If you create a gadget only for Windows, make sure that the gadget is not installable on Mac or Linux:&lt;br /&gt;&lt;pre&gt;&amp;lt;windows minimumGadgetHostVersion=&quot;5.1.0.0&quot;/&amp;gt; &amp;lt;!-- Windows is supported --&amp;gt;&lt;br /&gt;&amp;lt;mac supported=&quot;no&quot;/&amp;gt; &amp;lt;!-- No support for Mac --&amp;gt;&lt;/pre&gt;For more information, check the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/desktop/docs/script.html#gmanifest&quot;&gt;gadget.gmanifest&lt;/a&gt; documentation.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Good performance:&lt;/span&gt; The gadget should make optimum use of the hardware and operating system services. The efficiency of software can usually be greatly improved by an intelligent choice of high-level algorithms, rather than using local &quot;tricks&quot; or optimizations that can lead to maintenance problems. Factors that may be of interest are response time and memory requirements.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Robustness:&lt;/span&gt; The gadget should continue to function in non-standard conditions such as incorrect user input. For example, when the user types something wrong, you can warn the user with a basic message box.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Appropriate interface:&lt;/span&gt; The gadget should be friendly and inviting to users. The design and choice of the interface should take into account the needs and capabilities of the users. Many times, gadget features are not utilized because the interface is difficult.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Documentation:&lt;/span&gt; The gadget must link to a website that provides support and information about the gadget. On the website, you can write detailed descriptions about what the gadget can do. And don’t forget to display your email address so the users can easily provide feedback about your gadget, offer to translate it, or report a bug. Try to always include a page with frequently asked questions. One good idea is to add a YouTube video about your gadget on the website to show what it can do.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Stefan Van Damme, Gadget Developer&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-6475403964875537310?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=ERDdmEsWlMc:_pIYThQ4y-E:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=ERDdmEsWlMc:_pIYThQ4y-E:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?i=ERDdmEsWlMc:_pIYThQ4y-E:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/ERDdmEsWlMc&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-6475403964875537310</guid>
         <pubDate>Thu, 07 May 2009 08:48:00 -0700</pubDate>
      </item>
      <item>
         <title>Congratulations to Adam Hotz!</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/Wd8w4QESltI/congratulations-to-adam-hotz.html</link>
         <description>A new gadget by Adam Hotz is featured on the Inside Google Desktop blog. See the post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledesktop.blogspot.com/2009/04/featured-gadget-task-list-and-timer.html&quot;&gt;Featured gadget: Task List and Timer&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Kathy Walrath, Technical Writer (Google Desktop Team)&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-2270776395048657150?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=Wd8w4QESltI:Ln7wPOx0utI:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=Wd8w4QESltI:Ln7wPOx0utI:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?i=Wd8w4QESltI:Ln7wPOx0utI:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/Wd8w4QESltI&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-2270776395048657150</guid>
         <pubDate>Tue, 28 Apr 2009 05:08:00 -0700</pubDate>
      </item>
      <item>
         <title>Congratulations to Rosie Ojo!</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/0DHMJxDv92c/congratulations-to-rosie-ojo.html</link>
         <description>Yet another gadget by Rosie Ojo is featured on the Inside Google Desktop blog. See the post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledesktop.blogspot.com/2009/04/featured-gadget-periodic-table.html&quot;&gt;Featured gadget: Periodic Table Interactive&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Kathy Walrath, Technical Writer (Google Desktop Team)&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-4098768132760875932?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=0DHMJxDv92c:Y5n6OTQy_Lw:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=0DHMJxDv92c:Y5n6OTQy_Lw:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?i=0DHMJxDv92c:Y5n6OTQy_Lw:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/0DHMJxDv92c&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-4098768132760875932</guid>
         <pubDate>Mon, 20 Apr 2009 06:38:00 -0700</pubDate>
      </item>
      <item>
         <title>Congratulations to Teodor Filimon!</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/ndMfZ_ib9Tw/congratulations-to-teodor-filimon.html</link>
         <description>A gadget by Teodor Filimon is featured on the Inside Google Desktop blog. See the post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledesktop.blogspot.com/2009/04/featured-gadget-tabbed-todo-list.html&quot;&gt;Featured gadget: Tabbed Todo List&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Kathy Walrath, Technical Writer (Google Desktop Team)&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-7740193248294299402?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=ndMfZ_ib9Tw:aW04DCnwczY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=ndMfZ_ib9Tw:aW04DCnwczY:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?i=ndMfZ_ib9Tw:aW04DCnwczY:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/ndMfZ_ib9Tw&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-7740193248294299402</guid>
         <pubDate>Mon, 13 Apr 2009 00:38:00 -0700</pubDate>
      </item>
      <item>
         <title>Congratulations to Prithvi Prabhu!</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/hL37UZ7Ezt4/congratulations-to-prithvi-prabhu.html</link>
         <description>A new gadget by Prithvi Prabhu is featured on the Inside Google Desktop blog. See the post &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googledesktop.blogspot.com/2009/04/featured-gadget-resource-hog-tracker.html&quot;&gt;Featured gadget: Resource Hog Tracker&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Kathy Walrath, Technical Writer (Google Desktop Team)&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-8157770478065832138?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=hL37UZ7Ezt4:FyeBdHffWKg:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=hL37UZ7Ezt4:FyeBdHffWKg:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?i=hL37UZ7Ezt4:FyeBdHffWKg:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/hL37UZ7Ezt4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-8157770478065832138</guid>
         <pubDate>Mon, 06 Apr 2009 14:28:00 -0700</pubDate>
      </item>
      <item>
         <title>Tip: Provide a better About dialog</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/WrnlVJPF-Qs/tip-provide-better-about-dialog.html</link>
         <description>What information must be in a gadget's About dialog? The About dialog certainly needs to display the &lt;b&gt;gadget name&lt;/b&gt;. It should also contain:&lt;ul&gt;&lt;li&gt;The &lt;b&gt;gadget creator's name&lt;/b&gt; (your name or your company's name)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A &lt;b&gt;short description&lt;/b&gt; of what the gadget can do&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The gadget's &lt;b&gt;license&lt;/b&gt;, if any (for example, CC-License or Apache License)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Optionally, you can add information such as:&lt;ul&gt;&lt;li&gt;The &lt;b&gt;version number&lt;/b&gt; of the gadget&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A list of &lt;b&gt;features&lt;/b&gt; introduced in this version of the gadget&lt;/li&gt;&lt;li&gt;A link to your &lt;b&gt;website&lt;/b&gt;, so happy customers can get more gadgets from you or contact you&lt;/li&gt;&lt;/ul&gt;Here's an example of a good About dialog in my &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://desktop.google.com/plugins/i/fastshutdown.html?hl=en&quot;&gt;Fast shutdown&lt;/a&gt; gadget.&lt;div&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://4.bp.blogspot.com/_eeoi-8Kj-hI/SbqN0YWynJI/AAAAAAAAAX8/4CQyPN401iA/s1600-h/svd.png&quot;&gt;&lt;img style=&quot;cursor:pointer;cursor:hand;width:354px;height:319px;&quot; src=&quot;http://4.bp.blogspot.com/_eeoi-8Kj-hI/SbqN0YWynJI/AAAAAAAAAX8/4CQyPN401iA/s400/svd.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5312714641467677842&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Stefan Van Damme, Gadget Developer &lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-3450333311463551549?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=WrnlVJPF-Qs:tER6io-3y0g:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?a=WrnlVJPF-Qs:tER6io-3y0g:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/GoogleDesktopApis?i=WrnlVJPF-Qs:tER6io-3y0g:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/WrnlVJPF-Qs&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-3450333311463551549</guid>
         <pubDate>Fri, 13 Mar 2009 02:35:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://4.bp.blogspot.com/_eeoi-8Kj-hI/SbqN0YWynJI/AAAAAAAAAX8/4CQyPN401iA/s72-c/svd.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Tip: Use keyboard shortcuts in the Gadget Designer</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/rIkBvyAMxXs/tip-use-keyboard-shortcuts-in-gadget.html</link>
         <description>When writing code in the Google Desktop Gadget Designer, you most likely have used the Ctrl+C and Ctrl+V keyboard shortcuts to copy and paste text.&lt;br /&gt;&lt;br /&gt;Here are some other shortcuts to work faster in the Gadget Designer. They work only while editing text such as JavaScript and XML files.&lt;br /&gt;&lt;br /&gt;&lt;table&gt; &lt;tbody&gt;&lt;tr&gt;&lt;td width=&quot;20%&quot;&gt;Ctrl+D&lt;/td&gt;&lt;td&gt;Inserts a copy of the current line below the current line&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+L&lt;/td&gt;&lt;td&gt; Deletes the current line&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+T&lt;/td&gt;&lt;td&gt; Swaps the current line and the line above it&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Ctrl+[0-9] &lt;/td&gt;&lt;td&gt; Switches the current tab. For example, if the Preview window is positioned in the second tab, Ctrl+2 switches to that tab.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Stefan Van Damme, Gadget Developer&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-6514960356562425088?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?a=6dGR1Fbw&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?a=Yh4Amy1m&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?i=Yh4Amy1m&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/rIkBvyAMxXs&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-6514960356562425088</guid>
         <pubDate>Mon, 23 Feb 2009 01:48:00 -0800</pubDate>
      </item>
      <item>
         <title>A completely new Gadget Designer</title>
         <link>http://feedproxy.google.com/~r/GoogleDesktopApis/~3/zbwfb5JT36Q/completely-new-gadget-designer.html</link>
         <description>A new and improved &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/desktop/docs/designer.html&quot;&gt;Google Desktop Gadget Designer&lt;/a&gt; is out, with a couple of major new features. The Designer editor now includes autocompletion support and function call tips for the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/desktop/docs/gadgetapi.html&quot;&gt;Google Desktop Gadget API&lt;/a&gt; and the JavaScript language.&lt;br /&gt;&lt;br /&gt;You can start autocompletion by typing the &quot;.&quot; key or pressing Ctrl+Space. A list appears that displays objects, methods, properties, events, and constants to choose from, along with visual indicators to help you distinguish between them. Non-object related variables and functions are also dynamically recognized as you type them, and you'll see autocompletion suggestions based on your current scope. The following screenshot shows how Designer displays autocompletion suggestions for &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/desktop/docs/gadget_apiref.html#view&quot;&gt;&lt;code&gt;view&lt;/code&gt;&lt;/a&gt; object properties and methods that start with &quot;s&quot;.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_eeoi-8Kj-hI/SZsTl7owJ6I/AAAAAAAAAXs/xyYDbB5iNDs/s1600-h/image1.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_eeoi-8Kj-hI/SZsTl7owJ6I/AAAAAAAAAXs/xyYDbB5iNDs/s400/image1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5303854528543598498&quot; style=&quot;cursor:pointer;width:299px;height:127px;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Call tips display function prototypes and short descriptions. They appear when you type an opening brace &quot;(&quot; or press Shift+Space. The following screenshot shows the call tip for the &lt;code&gt;view.setInterval()&lt;/code&gt; method.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_eeoi-8Kj-hI/SZsT1WqqdjI/AAAAAAAAAX0/SnCC7k_w-Rc/s1600-h/image2.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/_eeoi-8Kj-hI/SZsT1WqqdjI/AAAAAAAAAX0/SnCC7k_w-Rc/s400/image2.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5303854793497409074&quot; style=&quot;cursor:pointer;width:327px;height:87px;&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We sincerely hope that these new features will save you a lot of time while developing gadgets, making it that much more fun to bring your ideas to life. Please download the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://desktop.google.com/downloadsdksubmit&quot;&gt;latest SDK&lt;/a&gt; and try out the new Gadget Designer.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt; Posted by Paneendra Ba, Software Engineer (Google Desktop Team)&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4907257916066055864-5053280408122058386?l=googledesktopapis.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?a=thumcBCQ&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?d=41&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?a=SDA9rq6R&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~f/GoogleDesktopApis?i=SDA9rq6R&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleDesktopApis/~4/zbwfb5JT36Q&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kathy Walrath [GD Team]</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-4907257916066055864.post-5053280408122058386</guid>
         <pubDate>Tue, 17 Feb 2009 03:38:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_eeoi-8Kj-hI/SZsTl7owJ6I/AAAAAAAAAXs/xyYDbB5iNDs/s72-c/image1.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>&lt;h1&gt;Web Toolkit Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>New insights into web application performance</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/12ZBLwGiW8g/new-insights-into-web-application.html</link>
         <description>&lt;p&gt;
I've sometimes thought that optimizing web applications is as much a science as dowsing. (No offense intended, dowsers of the world &amp;mdash; but you have to admit it's a hard thing to explain even when it does work out.) Even when you are completely willing to invest time and energy into optimizing an application, how do you actually go about it?
&lt;/p&gt; &lt;p&gt;
Our team, along with everyone else in the world who cares about web application performance, has had to essentially guess at where time goes inside the browser. We've spent countless hours debating each others' wild-eyed speculations as to the true sources of latency afflicting a wide variety of applications. Indeed, web apps can be slow for all sorts of opaque and unintuitive reasons. Don't be fooled into thinking that bloated, slow JavaScript is the only culprit. We've seen pathological situations in which a few seemingly insignificant CSS tweaks can improve performance by a factor of 5 or more. Another dark gem: rearranging a mere few lines of JavaScript that were inadvertently calling DOM-related methods in an unfortunate sequence (which caused multiple redundant layouts) turned a life-negating 5 second operation into a sprightly 50 millisecond blink of an eye. That one took 5 days to find the offending 4 lines of JavaScript and then about 3 seconds to actually make the code change. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/#search?q=%23nowiamwaybehindingooglereader&quot;&gt;#nowiamwaybehindingooglereader&lt;/a&gt;
&lt;/p&gt; &lt;p&gt;
We couldn't take it anymore. We decided we had to find a way to transform the witchcraft of optimizing web apps into a legitimate engineering task, once and for all.
&lt;/p&gt; &lt;p&gt;
My team began working on a series of changes to WebKit and Chrome to collect precise metrics on where time is, in fact, going within the browser. When, exactly, does layout occur? How long does each layout take? Can layout happen synchronously while my JavaScript is executing, or is it deferred? How much time is spent on CSS selector matching? How long does parsing (versus executing) JavaScript take? Does the process of actually painting pixels on the screen take much time? We instrumented the browser way deep down inside to produce a stream of such metrics, being very careful to keep observer effects to a minimum.
&lt;/p&gt; &lt;p&gt;
Happily, we've managed to land these changes into both WebKit and Chrome over the last several weeks. Soon you'll see the first examples of tools that make these metrics available to web developers using WebKit-based browsers. Of course, we have a lot more instrumentation planned, but the ball is really rolling now thanks to lots of help from the friendly folks on the WebKit and Chrome teams (especially Pavel Feldman and Timothy Hatcher). We've gained many new insights, some of which I mentioned in my &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/2009/sessions/MeasureMillisecondsPerformanceTipsWebToolkit.html&quot;&gt;Measure in Milliseconds&lt;/a&gt; talk at Google I/O earlier this year. When you see these metrics yourself for your own web apps, you'll likely be surprised &amp;mdash; and you'll almost certainly wonder how anyone tried to write high-performance code without this sort of insight. Be sure to keep an eye on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dev.chromium.org/getting-involved/dev-channel&quot;&gt;Chrome Dev Channel&lt;/a&gt; and the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://nightly.webkit.org/&quot;&gt;WebKit nightly builds&lt;/a&gt; for new Inspector features based on our work.
&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-4775442492850243785?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=12ZBLwGiW8g:r1ZVMg9Ekyg:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=12ZBLwGiW8g:r1ZVMg9Ekyg:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=12ZBLwGiW8g:r1ZVMg9Ekyg:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/12ZBLwGiW8g&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Kelly Norton</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-4775442492850243785</guid>
         <pubDate>Wed, 04 Nov 2009 02:23:00 -0800</pubDate>
      </item>
      <item>
         <title>The enterprise (apps) in your pocket</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/aDWJSfWAUQw/enterprise-apps-in-your-pocket.html</link>
         <description>When building great enterprise apps for our users many of us often first target the desktop user. Did you know that GWT lets you just as easily build great user interfaces for your mobile users?&lt;br /&gt;
&lt;br /&gt;
Modern mobile phones such Android based devices and the iPhone ship will powerful web browsers which use the same Webkit rendering engine which GWT already supports and increasingly includes great capabilities like geo-location and offline storage.&lt;br /&gt;
&lt;br /&gt;
Today's guest blog post is from&amp;nbsp;Navin Kumar, CTO of Socialwok who has offered to share some of their experiences around building mobile apps for the enterprise.&lt;br /&gt;
&lt;br /&gt;
If you have an enterprise story you'd like share please&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;mailto:fredsa@google.com&quot;&gt;send me an email&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
--&lt;br /&gt;
&lt;br /&gt;
Google Web Toolkit (GWT) is a great set of open source tools for developing powerful Ajax-enabled web applications. &amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://socialwok.com/&quot;&gt;Socialwok&lt;/a&gt; uses GWT on top of Google App Engine to provide a feed based group collaboration service for Google Apps users. &amp;nbsp;GWT makes development more efficient, particularly for Java developers who work on both the front-end and the back-end. &amp;nbsp;Since we use Java language support for Google App Engine, this is true for us. &amp;nbsp;By using the Java programming language, GWT can make you more efficient in many other ways too. &amp;nbsp;For example, after spending a couple of months developing the desktop web version of Socialwok, we developed the mobile HTML 5 web version in four days.&lt;br /&gt;
To see the desktop web version of Socialwok go to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://socialwok.com/&quot;&gt;http://socialwok.com/&lt;/a&gt;&amp;nbsp;and use any existing Google Apps domain email address to login.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_v1cyex1oKPA/SteJj9GWIGI/AAAAAAAAACM/fKiLO_BNcbI/s1600-h/File-1.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/_v1cyex1oKPA/SteJj9GWIGI/AAAAAAAAACM/fKiLO_BNcbI/s320/File-1.png&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Once you have created your socialwok network, you can now access the mobile web version by pointing your mobile web browser to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://app.socialwok.com/&quot;&gt;http://app.socialwok.com/&lt;/a&gt;. Login using your google apps domain email address.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_v1cyex1oKPA/SteJkpDudhI/AAAAAAAAACU/rVAubgM4iuc/s1600-h/File-2.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_v1cyex1oKPA/SteJkpDudhI/AAAAAAAAACU/rVAubgM4iuc/s320/File-2.png&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Here are a few pointers based on our experience in creating Socialwok's desktop and mobile web versions:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. &amp;nbsp;Think about the devices you want to support.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
75% of iPhone users say they browse the web more often from their iPhone now more than they ever did before. &amp;nbsp;40% of them browse the web more often from their iPhone than their own desktop. Hence, it is important to have a mobile web version of your application for different mobile web devices like iPhone and Android. Socialwok mobile web version supports mobile browsers based on the Webkit codebase like the iPhone's Safari and Android mobile web browsers. The first step was therefor to fix the &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;user.agent&lt;/span&gt;&amp;nbsp;in our module's &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;.gwt.xml&lt;/span&gt; file to speed up compile time by having GWT only compile the Webkit permutation:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family:monospace;font-size:12px;line-height:15px;white-space:pre-wrap;&quot;&gt;&amp;lt;set-property name=&quot;user.agent&quot; value=&quot;safari&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family:monospace;font-size:small;&quot;&gt;&lt;span style=&quot;font-size:12px;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;line-height:normal;white-space:normal;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Of course, during development we enjoy GWT's quick edit-refresh-test model thanks to Development Mode (formerly Hosted Mode) which lets us test our code in a real browser while executing and debugging in Java.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Another thing to note is that with Mobile Safari on the iPhone and the Android Web Browser, you are now allowed to use webkit-specific CSS for mobile devices. &amp;nbsp;This allows you to use native accelerations that include transitions, border images, as well as natively-created gradients. &amp;nbsp;Here's an example of CSS used to create a native accelerated transition.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;.menuPanel {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;width: 100%;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;#92;-webkit-transition: opacity 500ms ease-out 100ms;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Look for more info &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.apple.com/safari/library/referencelibrary/GettingStarted/GS_iPhoneWebApp/index.html&quot;&gt;here&lt;/a&gt;. While the information is specific to the iPhone, the same rules do apply and work well on the Android browser as well.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Optimize for the screen that your users are using.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
iPhone and Android devices use very powerful touch screen user interfaces. The user interface for all the iPhone applications is pretty well-defined; it involves a navigation header at the top, the content in the middle, and maybe a footer at the bottom. &amp;nbsp;If you're thinking in GWT widgets, you should be thinking &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;VerticalPanel&lt;/span&gt;&amp;nbsp;or &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;FlowPanel&lt;/span&gt;. &amp;nbsp;These are the widgets of choice for the mobile web GWT developer. &lt;br /&gt;
&lt;br /&gt;
Screen real estate on mobile phones is precious. You have to optimize the amount of visible content on the screen. &amp;nbsp;Try to make things &quot;expand&quot; when you click on them. &amp;nbsp;For example, in Socialwok, when someone clicks a post from the listing screen, a new screen is given to the user with only the single &quot;opened&quot; post that lists all the attachments, comments, and other pieces of information right there.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_v1cyex1oKPA/SteJmP-VbRI/AAAAAAAAACc/HOFbfn6QaFw/s1600-h/File-3.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/_v1cyex1oKPA/SteJmP-VbRI/AAAAAAAAACc/HOFbfn6QaFw/s320/File-3.png&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_v1cyex1oKPA/SteJm2-RqHI/AAAAAAAAACk/qYpvRgDL-mU/s1600-h/File-4.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_v1cyex1oKPA/SteJm2-RqHI/AAAAAAAAACk/qYpvRgDL-mU/s320/File-4.png&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
Unlike the desktop version, instead of one single widget for the feed item, we need one widget for the feed listing, and one &quot;feed item&quot; panel, that contains the single update along with the corresponding comment thread. &lt;br /&gt;
&lt;br /&gt;
Finally, understand that your users are looking at the mobile as a &quot;complement&quot; to your desktop version.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear:both;text-align:center;&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_v1cyex1oKPA/SteJoM21-aI/AAAAAAAAACs/i_dUtjxNqmQ/s1600-h/File-5.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/_v1cyex1oKPA/SteJoM21-aI/AAAAAAAAACs/i_dUtjxNqmQ/s320/File-5.png&quot;/&gt;&lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_v1cyex1oKPA/SteJokKqhDI/AAAAAAAAAC0/CJYWiZ3Tfcs/s1600-h/File-6.png&quot; style=&quot;margin-left:1em;margin-right:1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://2.bp.blogspot.com/_v1cyex1oKPA/SteJokKqhDI/AAAAAAAAAC0/CJYWiZ3Tfcs/s320/File-6.png&quot;/&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
While they might end up using the mobile version more often, they expect it to mirror the desktop interface in basic ways. &amp;nbsp;This is actually great because you have already developed your widgets using Java, and porting them to the mobile is only a matter of changing CSS classes, and removing a few unnecessary UI elements. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3. Share as much code as possible between versions.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
This is the most important reason why mobile development can be done rapidly. &amp;nbsp;All of GWT's HTTPRequest, marshalled &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;JavaScriptObject&lt;/span&gt;, and other non-UI code is shared between the mobile web and desktop web versions. &amp;nbsp;This concept is important in general for any GWT application that uses multiple EntryPoint modules. &amp;nbsp;The great thing about this is that the Java programming language makes this possible by it's own definition. &amp;nbsp;OOP developers tout code sharing all the time, and you should follow their advice nonetheless. &amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/doc/1.6/DevGuideOrganizingProjects.html&quot;&gt;This page&lt;/a&gt; in particular is very useful to understanding how to organize your GWT code.&lt;br /&gt;
&lt;br /&gt;
I hope the above pointers help you get started on desktop to mobile web development on GWT. For more information on Socialwok and GWT, check out Google's developer &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=_vuKLLJ3PHY&quot;&gt;GWT profile on Socialwok on YouTube&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Finally, here are some useful classes and libraries you can use for GWT mobile web development:&lt;br /&gt;
&lt;br /&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-web-toolkit-incubator/wiki/ImmutableResourceBundle&quot;&gt;ImmutableResourceBundle&lt;/a&gt;&amp;nbsp;- A great set of tools that was started in the GWT incubator project but has now made their way in the mainline GWT trunk development&amp;nbsp;(soon to be known as&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-web-toolkit/wiki/ClientBundle&quot;&gt;ClientBundle&lt;/a&gt;). &amp;nbsp;ImmutableResourceBundle is the followup to the great ImageBundle interface. &amp;nbsp;Both seek to reduce greatly the number of round-trip times used by browsers to download cacheable resources such as images, CSS, and other resources. &amp;nbsp;The mobile browser is even more limited than the desktop browsers when it comes to downloading simultaneous resources, so the use of &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;data:&lt;/span&gt;&amp;nbsp;URLs and &lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;CssBundle&lt;/span&gt; are used heavily by the mobile version of Socialwok.&lt;br /&gt;
&lt;br /&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-web-toolkit.googlecode.com/svn/javadoc/1.6/com/google/gwt/user/client/ui/FlowPanel.html&quot;&gt;FlowPanel&lt;/a&gt; - Unlike desktop browsers which are more optimized for&lt;br /&gt;
tags that GWT uses for its CellPanel-based layout controls, mobile browsers like Safari and the Android browsers perform much better with &lt;br /&gt;
&lt;div&gt;
tags. &amp;nbsp;Layouts also seem to be more predictable with these tags than the others on the mobile phone.&lt;br /&gt;
&lt;br /&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwtquery/&quot;&gt;GWTQuery&lt;/a&gt; - Ray Cromwell's excellent port of JQuery to GWT provides most of the JQuery functionality to allow you to modify CSS, and perform other actions with ease. &amp;nbsp;In the case of the mobile web interface, there are times when it is definitely necessary to modify CSS dynamically, and this library will make that process much easier on you as a developer.&lt;br /&gt;
&lt;br /&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/docreader/#p=gwt-google-apis&amp;amp;s=gwt-google-apis&amp;amp;t=Gears&quot;&gt;GWT Google APIs (Gears)&lt;/a&gt; - Google Gears is a browser plugin installed in the Android Web Browser used to provide extra functionality, particularly offline support which is very import for mobile browsers which don't always have a permanent connection. &amp;nbsp;Google provides a GWT library that can be used to access the Gears plugin.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;-- Navin Kumar, CTO, Socialwok&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-1013337970967515463?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=aDWJSfWAUQw:SURC0s_R1ss:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=aDWJSfWAUQw:SURC0s_R1ss:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=aDWJSfWAUQw:SURC0s_R1ss:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/aDWJSfWAUQw&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Fred Sauer, Developer Advocate</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-1013337970967515463</guid>
         <pubDate>Mon, 19 Oct 2009 08:08:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://3.bp.blogspot.com/_v1cyex1oKPA/SteJj9GWIGI/AAAAAAAAACM/fKiLO_BNcbI/s72-c/File-1.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Building Enterprise web apps in the cloud</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/7YuMDRqkpcQ/building-enterprise-web-apps-in-cloud.html</link>
         <description>&lt;i&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;An important decision to make when building a web application is how to coordinate state between client and server. This includes how to create appropriate representations of your data to &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/doc/1.6/DevGuideServerCommunication.html&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;send over the wire&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;There are many possible approaches. I'd like to present a straightforward one from&amp;nbsp;Jerome Breche, CEO of TimZon, who was kind enough to share it with us today.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;font-style:normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-style:normal;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;font-style:normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-style:normal;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;font-style:normal;&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-style:normal;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;When we started our first GWT project (&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://timzon.com/&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;TimZon.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;), we found out that one of the major benefits of using GWT is its ability to transfer complex object data structure between client and server through the &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/doc/1.6/DevGuideServerCommunication.html#DevGuideRemoteProcedureCalls&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;RPC mechanism&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;. So when we initiated our second project (&lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://snapabug.com/&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;SnapABug.com&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;) combining GWT and &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Google App Engine&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;, we were very excited by the prospect of passing datastore objects directly though RPC.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;
We quickly realized that this is not very practical. First one of our &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/docs/java/datastore/usingjdo.html&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;JDO&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; objects includes images binary representation that we wouldn’t want to communicate through RPC. And then while making the JDO class serializable for GWT RPC may seem like a simple task, it created all kind of new problems since the JDO class will have to be configured as transient (using &lt;/span&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;detachable = &quot;false&quot;&lt;/span&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;) and we would still need to copy the object when passing it through the RPC. Instead we decided to simply create intermediary classes for the data objects used only for RPC communication. This way we can exactly control and optimize the data payload used by the RPC both for size and speed. On the JDO side, we simply created a getter and setter function to translate the JDO data into an RPC data format.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Here is an example of how this works in client side code.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;1. &lt;/span&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;Employee&lt;/span&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; class: contains JDO objects definition and getter and setter to translate them to GWT RPC serializable format&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Employee { &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private String name; @Persistent private String email; @Persistent private Blob image; /**&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; * Constructor * @param name * @param email */ public Employee(String name, String email) { this.name = name; this.email = email; } /** * Set Employee from RPCDataEmployee */ public void setRPCDataEmployee(RPCDataEmployee employee) { name = employee.name; email = employee.email; } /** * @return Employee data in RPC format */ public RPCDataEmployee getRPCDataEmployee() { RPCDataEmployee employee = new RPCDataEmployee(); employee.name = name; employee.email = email; return employee; }
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;2. &lt;/span&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;RPCDataEmployee&lt;/span&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; class used by GWT RPC calls&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;public class RPCDataEmployee implements IsSerializable {&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; public String name; public String email; // Note: image Blob not included in RPC payload
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;Here is an example of how this works in the server&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;3.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;RPCDataEmployee&lt;/span&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; server service implementation&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;public RPCDataEmployee getEmployee(String email){ RPCDataEmployee employee = new RPCDataEmployee(); // create data store connection PersistenceManager pm = PMF.get().getPersistenceManager(); // query datastore to get emmployee data String query = &quot;select from &quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; + Employee.class.getName()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; + &quot; where email == &quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; + email; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; List employees =&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; 
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; (List ) pm.newQuery(query).execute(); &lt;/span&gt;&lt;/span&gt;&lt;br /&gt; 
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; if (employees.size() == 1) { // record found employee = employees.get(0).getRPCDataEmployee(); } else { // do something else... } &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; pm.close(); &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt; return employee;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:'Courier New', Courier, monospace;&quot;&gt;&lt;span style=&quot;font-family:Times;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;While I am sure there are many other ways to achieve a similar result, maybe even avoiding duplicating the data classes, this solution was the easiest for us to get going quickly, keep our code very maintainable and control the amount of data exchanged between client and server.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;
&lt;/span&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;There is also a very interesting &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-web-toolkit-contributors/browse_thread/thread/3c768d8d33bfb1dc/5a38aa812c0ac52b?pli=1&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;discussion&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt; about this subject on the GWT Google Group.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;i&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;-- Jerome Breche, CEO &amp;amp; Founder of TIMZON, LLC&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family:inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;&quot;&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;If you would like to share your experiences with GWT and Google App Engine, either privately or on this blog, I'd like to &lt;/span&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;mailto:fredsa@google.com&quot;&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;hear from you&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family:inherit;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom:0px;margin-left:0px;margin-right:0px;margin-top:0px;&quot;&gt;
&lt;span style=&quot;line-height:15px;white-space:pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-6947873275316124047?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=7YuMDRqkpcQ:Mhh1ioyBS4g:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=7YuMDRqkpcQ:Mhh1ioyBS4g:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=7YuMDRqkpcQ:Mhh1ioyBS4g:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/7YuMDRqkpcQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Fred Sauer, Developer Advocate</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-6947873275316124047</guid>
         <pubDate>Thu, 08 Oct 2009 15:04:00 -0700</pubDate>
      </item>
      <item>
         <title>Making AJAX Crawlable</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/ag6RDNo3hQo/making-ajax-crawlable.html</link>
         <description>At the recent &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://searchmarketingexpo.com/east&quot;&gt;Search Marketing and Expo East Conference&lt;/a&gt; (SMX) several members of the Google Web Toolkit team delivered a presentation on making AJAX enabled web apps crawlable. This presentation included a proposal that is currently in the works which aims to solve the fundamental problem that it is difficult to index AJAX enabled web apps and therefore their searchability suffers. If you care about SEO in your GWT apps, check out the post on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html&quot;&gt;Google Webmaster Central Blog&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-Web-Toolkit/post?sendowner=1&amp;amp;_done=/group/Google-Web-Toolkit/about%3F&amp;amp;&quot;&gt;let us know your thoughts&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-7752577295082736591?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=ag6RDNo3hQo:XzXgrVU2wws:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=ag6RDNo3hQo:XzXgrVU2wws:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=ag6RDNo3hQo:XzXgrVU2wws:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/ag6RDNo3hQo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Chris Ramsdale</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-7752577295082736591</guid>
         <pubDate>Thu, 08 Oct 2009 07:17:00 -0700</pubDate>
      </item>
      <item>
         <title>GWT helps developers innovate in the enterprise</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/oSzpHbjlX5M/gwt-helps-developers-innovate-in.html</link>
         <description>I had an opportunity to sit down with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.techcrunch.com/2009/09/15/tc50-demopit-winner-socialwok-lays-a-great-social-layer-over-google-apps/&quot;&gt;TechCrunch50 Demopit winners&lt;/a&gt; and creators of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://socialwok.com/&quot;&gt;Socialwok&lt;/a&gt;,&amp;nbsp;a cloud based application which mixes&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/apps/&quot;&gt;Google Apps&lt;/a&gt;&amp;nbsp;and a unique set of social capabilities to make their customers more productive, both at their desks and on the road via their mobile web client. They chose &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;Google App Engine&lt;/a&gt; for scalability and hassle free web hosting and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/&quot;&gt;Google Web Toolkit&lt;/a&gt; to maximize their productivity so that they could focus on creating a great web experience for their users. You can watch the interview &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=_vuKLLJ3PHY&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
 
 
 
 
 
 
 
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-4866637548971816377?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=oSzpHbjlX5M:7ibDUnIvMQ0:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=oSzpHbjlX5M:7ibDUnIvMQ0:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=oSzpHbjlX5M:7ibDUnIvMQ0:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/oSzpHbjlX5M&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Fred Sauer, Developer Advocate</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-4866637548971816377</guid>
         <pubDate>Mon, 05 Oct 2009 08:29:00 -0700</pubDate>
      </item>
      <item>
         <title>Riding the Google Wave</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/3HI8e1iCPHA/riding-google-wave.html</link>
         <description>&lt;br /&gt;
Today our colleagues down under &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2009/09/surfs-up-wednesday-google-wave-update.html&quot;&gt;began inviting the first 100,000 users to preview Google Wave&lt;/a&gt;. We are very proud of the work that they have done and are quite pleased that GWT has helped&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=lWMVzhXwh-I&quot;&gt;make Google Wave a reality&lt;/a&gt;. You can read more in yesterday's&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.infoq.com/news/2009/09/google-wave-backstage&quot;&gt;Google Wave Backstage - Q&amp;amp;A with Dhanji Prasanna&lt;/a&gt;&amp;nbsp;at InfoQ.&lt;br /&gt;
&lt;br /&gt;
In fact the Wave team has told us that they would have not been able to build the user interface you see today without GWT. That's a great testament to our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/makinggwtbetter.html#introduction&quot;&gt;mission statement&lt;/a&gt; which reflects our focus on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/&quot;&gt;developer productivity and user performance&lt;/a&gt;, delivering a great AJAX experience across all major browsers. Also, with only 10-15% additional effort GWT allowed the team to build a user interface dedicated for mobile devices browsers.&lt;br /&gt;
&lt;br /&gt;
Of course there's still &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlewavedev.blogspot.com/&quot;&gt;much to do&lt;/a&gt;&amp;nbsp;before Google Wave rolls out for everyone. If you weren't one of the developers who participated in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=v_UyVmITiYQ&amp;amp;feature=player_embedded&quot;&gt;developer preview&lt;/a&gt;&amp;nbsp;or helped build one of the many &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wave-samples-gallery.appspot.com/&quot;&gt;samples&lt;/a&gt;&amp;nbsp;perhaps there's an extension you would like to build. Check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/wave/&quot;&gt;Google Wave API Documentation&lt;/a&gt;&amp;nbsp;to find out how you can get started with GWT and Google Wave.&lt;br /&gt;
&lt;br /&gt;
Congratulations to the Google Wave team on achieving this milestone and we look forward to continuing &amp;nbsp;to work together.&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-4428663567459646715?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=3HI8e1iCPHA:fTt1lQPyxbY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=3HI8e1iCPHA:fTt1lQPyxbY:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=3HI8e1iCPHA:fTt1lQPyxbY:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/3HI8e1iCPHA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Fred Sauer, Developer Advocate</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-4428663567459646715</guid>
         <pubDate>Wed, 30 Sep 2009 11:45:00 -0700</pubDate>
      </item>
      <item>
         <title>GWT Community Updates</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/Hp6sHj8YJMQ/gwt-community-updates.html</link>
         <description>&lt;h3&gt;Community announcements&lt;/h3&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; id=&quot;g_ax&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-mobile-webkit/&quot; title=&quot;GWT on the go with gwt-mobile-webkit&quot;&gt;GWT on the go with gwt-mobile-webkit&lt;/a&gt;: A new project is underway started by a developer in the GWT community that provides GWT API bindings to HTML 5 features supported by Mobile WebKit. While the project more closely follows the WebKit implementation for HTML 5 features and other WebKit libraries, other browsers are also supported for various HTML 5 APIs. Check out the &lt;a rel=&quot;nofollow&quot; id=&quot;e1qw&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-mobile-webkit/&quot; title=&quot;project homepage&quot;&gt;project homepage&lt;/a&gt; for more details.&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; id=&quot;muyy&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/cobogwave/&quot; title=&quot;GWT Gadgets riding the Wave&quot;&gt;GWT Gadgets riding the Wave&lt;/a&gt;: The Google Wave Gadget API is an awesome way to leverage the power of Wave in your gadgets. Thanks to the efforts of yet another great GWT community member, you can now more easily use the Google Wave Gadget API in your GWT developed Gadgets using the &lt;a rel=&quot;nofollow&quot; id=&quot;dh4t&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/cobogwave/&quot; title=&quot;cobogwave project&quot;&gt;cobogwave&lt;/a&gt; project. This library builds on the existing GWT Gadgets support available in the &lt;a rel=&quot;nofollow&quot; id=&quot;y-l6&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-google-apis/&quot; title=&quot;Google API Libraries for GWT project&quot;&gt;Google API Libraries for GWT&lt;/a&gt; project.&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; id=&quot;ubxi&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-gdata/&quot; title=&quot;GWT-GData v 1.10.1 released&quot;&gt;GWT-GData v 1.10.1 released&lt;/a&gt;: Developed through the &lt;a rel=&quot;nofollow&quot; id=&quot;q.om&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-web-toolkit/browse_thread/thread/fbf592c8b84382fd&quot; title=&quot;guidance of the GWT team, GWT community contributors and the main project lead&quot;&gt;guidance of the GWT team, GWT community contributors and the main project lead&lt;/a&gt;, Bobby Soares, the &lt;a rel=&quot;nofollow&quot; id=&quot;mymk&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-gdata/&quot; title=&quot;gwt-gdata&quot;&gt;gwt-gdata&lt;/a&gt; project recently had its 1.10.1 release. This is a nice library to access many of the GData APIs from &lt;a rel=&quot;nofollow&quot; id=&quot;q-sa&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/analytics/&quot; title=&quot;Google Analytics&quot;&gt;Google Analytics&lt;/a&gt; to &lt;a rel=&quot;nofollow&quot; id=&quot;nm-e&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/maps/documentation/mapsdata/&quot; title=&quot;Google Maps Data&quot;&gt;Google Maps Data&lt;/a&gt;. The full list of supported GData APIs can be found on the project page.&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; id=&quot;r:wz&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-mvc/&quot; title=&quot;GWT-MVC 0.3 released&quot;&gt;GWT-MVC 0.3 released&lt;/a&gt;: The MVC pattern has proven its usefulness in the domain of web application development time and time again. If this pattern is a good fit for the project you're planning or currently working on, you may want to check out the &lt;a rel=&quot;nofollow&quot; id=&quot;o-ln&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-mvc/&quot; title=&quot;gwt-mvc&quot;&gt;gwt-mvc&lt;/a&gt; project, which provides a layer of abstraction to make MVC modeled development easier in GWT.&lt;/p&gt;&lt;p&gt;&lt;a rel=&quot;nofollow&quot; id=&quot;knm1&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-connectors/&quot; title=&quot;GWT-Connectors 1.7 released&quot;&gt;GWT-Connectors 1.7 released&lt;/a&gt;: The &lt;a rel=&quot;nofollow&quot; id=&quot;cmfn&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/gwt-connectors/&quot; title=&quot;gwt-connectors&quot;&gt;gwt-connectors&lt;/a&gt; project is a really cool tool for developers who need to connect boxed components with connectors, and now includes connectors with arrow tips. You can check out the demo &lt;a rel=&quot;nofollow&quot; id=&quot;qenp&quot; target=&quot;_blank&quot; href=&quot;http://www.aurea-bpm.com/gwt-connectors/Gwt_connectors_example.html&quot; title=&quot;here&quot;&gt;here&lt;/a&gt;, and if you like what you see and need it for your application, check out the project page for more information.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-4064291112289267565?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=Hp6sHj8YJMQ:ydOiqqbdqc8:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=Hp6sHj8YJMQ:ydOiqqbdqc8:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=Hp6sHj8YJMQ:ydOiqqbdqc8:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/Hp6sHj8YJMQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Sumit Chandel, Developer Programs Engineer</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-4064291112289267565</guid>
         <pubDate>Fri, 25 Sep 2009 02:00:00 -0700</pubDate>
      </item>
      <item>
         <title>GWT 1.7.1 release fixes Mac OS X Snow Leopard issues</title>
         <link>http://feedproxy.google.com/~r/blogspot/NWLT/~3/KMdHV22br8E/gwt-171-release-fixes-mac-os-x-snow.html</link>
         <description>&lt;p&gt;
If you don't use Mac OS X 10.6 (Snow Leopard), the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/download.html&quot;&gt;GWT 1.7.1 release&lt;/a&gt; shouldn't interest you much -- you shouldn't see any changes. If you do use Mac OS X 10.6, good news. Running GWT with Java 6 has become simpler. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/webtoolkit/download.html&quot;&gt;Download it here&lt;/a&gt;.
&lt;/p&gt;&lt;br/&gt;
&lt;h3&gt;What's in the point release&lt;/h3&gt;
&lt;p&gt;
GWT's hosted mode uses the Standard Widget Toolkit (SWT), which only supports 32-bit operation. Hosted mode must therefore also run a 32-bit version of Java. Mac OS X 10.5 (Leopard) shipped with a 32-bit Java 5 and a 64-bit only Java 6. Java 5 was compatible with the 32-bit SWT bindings, so the GWT SDK directed users to use Java 5 only. With the Snow Leopard release, Apple only includes Java 6, but it now runs in both 32-bit and 64-bit modes. &lt;/p&gt;
&lt;p&gt;
In short, you can now run GWT on Snow Leopard using the Java command line argument -d32 without further modification. The GWT SDK no longer directs you to only use Java 5, and the ant scripts (including scripts generated by the webAppCreator tool) have been updated to include the -d32 flag where necessary. Also, Linux users will see a more informative error message when a non-32-bit Java runtime is used..
&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/28098389-5913397671740469946?l=googlewebtoolkit.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=KMdHV22br8E:vlxlYzXk3Ys:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?a=KMdHV22br8E:vlxlYzXk3Ys:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/NWLT?i=KMdHV22br8E:vlxlYzXk3Ys:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/NWLT/~4/KMdHV22br8E&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Andrew Bowers</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-28098389.post-5913397671740469946</guid>
         <pubDate>Wed, 23 Sep 2009 03:14:00 -0700</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;Mashup Editor Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Farewell to Mashup Editor</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/ycMYq7aw8Ag/farewell-to-mashup-editor.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Eric Tholomé, Director, Developer Products&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We had &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlemashupeditor.blogspot.com/2009/01/from-mashup-editor-to-app-engine.html&quot;&gt;announced&lt;/a&gt; back in January that we would be shutting down the Mashup Editor in six months, and that time has come. Since a few of you still have applications running on the Mashup Editor, we decided to give you some extra time - 4 weeks. You can use this time to migrate your application to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;App Engine&lt;/a&gt; or any other infrastructure, or simply retrieve your data. We encourage you to replace your application as soon as possible with a static page giving useful information to your users about where to go. On August 12th, all traffic to the Mashup Editor will be redirected to a generic page. Note that your code is available on Project Hosting at http://code.google.com/p/mashup-{username}-{app name} (where non-supported characters are replaced by '-') and will remain available there for the foreseable future, but your data will not be accessible beyond August 12th. We've factored most of our learning from the Mashup Editor into &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/&quot;&gt;App Engine&lt;/a&gt;, so we hope you'll give it a try if you haven't yet.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-1082706560756625704?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/ycMYq7aw8Ag&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Eric Tholomé</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-1082706560756625704</guid>
         <pubDate>Wed, 15 Jul 2009 10:38:00 -0700</pubDate>
      </item>
      <item>
         <title>From Mashup Editor to App Engine</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/G73FQnqLqHE/from-mashup-editor-to-app-engine.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul McDonald, Google Mashup Editor Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As we announced today on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-code-updates.blogspot.com/2009/01/changes-for-jaiku-and-farewell-to.html&quot;&gt;Google Code Blog&lt;/a&gt;, we will be shutting down the Mashup Editor in six months. While it is always hard to say goodbye to a product, when we launched the Mashup Editor as a private beta last year, we did so to better understand the needs of you, our developers. And you spoke, and much of what we learned together is now a big part of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine&quot;&gt;App Engine&lt;/a&gt;, the new infrastructure for hosted developer applications. We look forward to working with you in the migration to App Engine, and can't wait to see what you build.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-512922961707131315?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/G73FQnqLqHE&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-512922961707131315</guid>
         <pubDate>Wed, 14 Jan 2009 11:21:00 -0800</pubDate>
      </item>
      <item>
         <title>Google I/O</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/-EIZOjiiGr0/google-io.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul McDonald, Google Mashup Editor Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Almost 9 months ago we released the first version of GME at Google Developer Day. Since then Google Developer Day has morphed into Google I/O, a two day developer gathering on May 28th &amp;amp; 29th in San Francisco. The purpose of the event is to bring developers together to learn about products, tools, and techniques which are moving the web forward as a platform.&lt;br /&gt;&lt;span style=&quot;display:block;&quot; id=&quot;formatbar_Buttons&quot;&gt;&lt;span class=&quot;on&quot; style=&quot;display:block;&quot; id=&quot;formatbar_CreateLink&quot; title=&quot;Link&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;There is going to be lots of discussion about client side development and mashups Google I/O. We hope to see you there.&lt;br /&gt;&lt;br /&gt;For more information on the event and to register checkout the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-code-updates.blogspot.com/2008/03/announcing-google-io.html&quot;&gt;Google I/O announcement&lt;/a&gt; on Google Code.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-2430981151545013589?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/-EIZOjiiGr0&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-2430981151545013589</guid>
         <pubDate>Fri, 28 Mar 2008 09:00:00 -0700</pubDate>
      </item>
      <item>
         <title>SurfDocs</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/Og9UbBRpDiQ/surfdocs.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul McDonald, Google Mashup Editor Team&lt;br /&gt;&lt;br /&gt;Check out this nice documentation mashup: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://surf.googlemashups.com&quot;&gt;http://surf.googlemashups.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;View slideshows and YouTube videos about any subject by searching for it through the interface. Nice work!&lt;br /&gt;&lt;br /&gt;If you've built a mashup you'd like us to share add it to our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gallery.googlemashups.com/&quot;&gt;mashup gallery&lt;/a&gt; and post about it in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-mashup-editor&quot;&gt;developer forum&lt;/a&gt;.&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-504561201683804240?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/Og9UbBRpDiQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-504561201683804240</guid>
         <pubDate>Thu, 06 Mar 2008 08:01:00 -0800</pubDate>
      </item>
      <item>
         <title>Google Earth Outreach on GME</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/2b-L6tnvWwI/google-earth-outreach-on-gme.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul Mcdonald, Google Mashup Editor Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/earth/outreach/&quot;&gt;Google Earth Outreach&lt;/a&gt; gives non-profits and public benefit organizations the knowledge and resources needed to reach the hearts and minds of charitable donors. To do this they are using a mashup, form and data feed created in GME to show how these non-profits are using Google mapping technology to improve their organizations.&lt;br /&gt;&lt;br /&gt;Check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/earth/outreach/&quot;&gt;Google Earth Outreach&lt;/a&gt; home page. The mashup on the bottom left was created with GME. If you are part of a non-profit you can add your organization to the map using the link below the map.&lt;br /&gt;&lt;br /&gt;This is great way to showcase the utility of GME with a professional implementation using the same tools as our GME developers.&lt;br /&gt;&lt;br /&gt;Do you have great examples of GME in action? Add your mashups to our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gallery.googlemashups.com&quot;&gt;mashup gallery&lt;/a&gt; or post about them in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-mashup-editor&quot;&gt;developer forum&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-446142551055476921?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/2b-L6tnvWwI&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-446142551055476921</guid>
         <pubDate>Fri, 29 Feb 2008 00:57:00 -0800</pubDate>
      </item>
      <item>
         <title>Using built-in templates</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/svR26rTD95A/using-built-in-templates.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul McDonald, Google Mashup Editor Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Templates are a really powerful piece of the GME framework. They allow you to display data from feeds using Ajax UI controls without having to write feed parsing code and the hundreds of lines of javascript required to create these controls.&lt;br /&gt;&lt;br /&gt;We've created a few built in templates to get you started and its extremely simple to create your own templates. Want to turn a simple read/write list into a task list with date pickers, ratings and checkboxes? All you have to do is change the value of the template parameter in your list and republish.&lt;br /&gt;&lt;br /&gt;Simple Read/Write:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;gm:list id=&quot;simplelist&quot; data=&quot;${app}/items&quot; template=&quot;simple&quot; pagesize=&quot;10&quot;&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Task List:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;gm:list id=&quot;simplelist&quot; data=&quot;${app}/items&quot; template=&quot;&lt;b&gt;task&lt;/b&gt;&quot; pagesize=&quot;10&quot;&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;You can even use our JavaScript library to change your template on the fly.&lt;br /&gt;&lt;br /&gt;If you want to find out about the other built in templates check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/gme/docs/data.html#reading&quot;&gt;Reading and displaying data&lt;/a&gt; section of our documentation. Let us know what types of information you like to see on this blog by going to our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-mashup-editor&quot;&gt;developer forum&lt;/a&gt; and posting.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-4394482961713705916?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/svR26rTD95A&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-4394482961713705916</guid>
         <pubDate>Thu, 07 Feb 2008 07:26:00 -0800</pubDate>
      </item>
      <item>
         <title>New stuff - 1/18</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/IqZk9Q3YMto/new-stuff-118.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul McDonald, Google Mashup Editor Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Today we released a minor update to the Google Mashup Editor.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;More fixes paging so that 250 items can be displayed per page&lt;/li&gt;&lt;li&gt;Fixes to the compiler so that it no longer optimizes tags. This fixes many bugs that caused problems in the display of compiled mashups.&lt;/li&gt;&lt;li&gt;More fixes to feed fetching. All Atom and RSS compliant feeds should now work correctly.&lt;/li&gt;&lt;li&gt;Documentation fixes&lt;/li&gt;&lt;/ul&gt;As always the full release notes are available in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gmereleases.googlemashups.com/&quot;&gt;GME release notes&lt;/a&gt; app (http://gmereleases.googlemashups.com/). We'll continue to do minor bug fix releases while we prepare for a major update to the Google Mashup Editor. If you have small features or bug fixes you'd like us to address please let us know by posting in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-mashup-editor/&quot;&gt;developer forum&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-8933919964889489017?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/IqZk9Q3YMto&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-8933919964889489017</guid>
         <pubDate>Fri, 18 Jan 2008 03:53:00 -0800</pubDate>
      </item>
      <item>
         <title>Nice Work! Some great nature mashups.</title>
         <link>http://feedproxy.google.com/~r/GoogleMashupEditorBlog/~3/oL98ZIcYfwA/nice-work-some-great-nature-mashups.html</link>
         <description>&lt;span class=&quot;byline-author&quot;&gt;Posted by Paul McDonald, Google Mashup Editor Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We continue to be impressed by the mashups GME developers are creating. We wanted to take some time to congratulate a few of you for some outstanding ones.&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://floridoogle.googlemashups.com/&quot;&gt;&lt;br /&gt;Floridoogle&lt;/a&gt; - Jack S.&lt;br /&gt;This mashup combines photos and information about various plant species with Google Product Search to enable users to research and buy trees, flowers, seeds and bulbs from various vendors on the internet. Bonus points for being in Gadget form and enabling users to user the gadget on iGoogle, Google's personalized homepage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://outdoor.googlemashups.com/&quot;&gt;Trails of Florianopolis &lt;/a&gt;- Ivan Linhares Martins&lt;br /&gt;We've mentioned this one before but Ivan continues to work on this great looking mashup. His&lt;span class=&quot;gm-control&quot;&gt; mashup explores the trails and the beautiful Nature of Florianópolis - an Island in the South of Brazil. Tips, trail rating, geographical information and other useful data describe each trail. The mashup combines data from Flickr, Google Base, Google Maps and Blogger.&lt;br /&gt;&lt;br /&gt;Great work developers! If you'd like us to share your mashup on our blog please submit it to our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://gallery.googlemashups.com&quot;&gt;mashup gallery&lt;/a&gt; and post about it in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-mashup-editor&quot;&gt;developer forum&lt;/a&gt;. If you are new to GME check out our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/gme/docs/screencasts.html&quot;&gt;screencast gallery&lt;/a&gt; for videos on how to create mashups with the Google Mashup Editor.&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6312983321898056605-211076566639264437?l=googlemashupeditor.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/GoogleMashupEditorBlog/~4/oL98ZIcYfwA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Paul McDonald</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-6312983321898056605.post-211076566639264437</guid>
         <pubDate>Mon, 14 Jan 2008 03:55:00 -0800</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;iGoogle Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Amigos! Freunde! Friends! Друзья!</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/UOZixASLnTY/amigos-freunde-friends.html</link>
         <description>Googlers live &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/corporate/address.html&quot;&gt;all over the world&lt;/a&gt;, and so do Google's users. In fact, more than half of iGoogle's users are outside the US, which is why we're pleased today to announce the release of support for social gadgets on iGoogle in more than 30 languages, from Bulgarian to Vietnamese.&lt;br /&gt;&lt;br /&gt;That means if you're developing or thinking about developing a social gadget to help users connect and collaborate on iGoogle, the size of your potential audience more than doubled! Now is a great time to explore our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/igoogle&quot;&gt;developer's site&lt;/a&gt; to learn about developing social gadgets for iGoogle. Or, if you already have a social gadget, you can &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gadgets/docs/i18n.html&quot;&gt;click here&lt;/a&gt; to learn how to make it accessible to an international audience.&lt;br /&gt;&lt;br /&gt;To learn more about how to make iGoogle and even more fun and personal homepage, you can check out the video below.&lt;br /&gt;&lt;br /&gt;&lt;div align=&quot;center&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Tyler Odean, Product Manager&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-1522267470375577734?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/UOZixASLnTY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-1522267470375577734</guid>
         <pubDate>Mon, 23 Nov 2009 07:07:00 -0800</pubDate>
      </item>
      <item>
         <title>Launching the iGoogle Gadget Dashboard</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/ThBXKrKM5ww/launching-igoogle-gadget-dashboard.html</link>
         <description>As Googlers, we love data. More data lets us make better decisions and make improvements to our products. As fellow gadget authors, we know that once you've developed a gadget, it can be difficult to get data that lets you know how your gadget is doing. The stats and comments in the directory are tailored for users, not developers, to help them make better decisions about which gadgets to install. Developers deserve a way to get data that lets them improve their gadgets.&lt;br /&gt;&lt;br /&gt;Worry no longer! We're pleased to announce the launch of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/igoogle/dashboard/&quot;&gt;iGoogle gadget dashboard&lt;/a&gt;, a place where developers can manage their gadgets and see detailed analytics about their gadgets' usage. Right now the dashboard allows you to see user numbers over time, number of gadget loads in home and canvas view, as well a geographic break down of users. We plan on adding more features to the dashboard in the near future which will give developers even more detailed information.&lt;br /&gt;&lt;br /&gt;If you've already built an iGoogle gadget, go to the dashboard and add it. All you have to do is log in and enter the URL of any gadget you own or developed. Enjoy!&lt;br /&gt;&lt;br /&gt;If you have any questions about the gadget dashboard, please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-gadgets-api&quot;&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Chris Pedregal, Product Manager and Kevin Liu, Tech Lead&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3207932172448314102?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/ThBXKrKM5ww&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-3207932172448314102</guid>
         <pubDate>Fri, 20 Nov 2009 07:03:00 -0800</pubDate>
      </item>
      <item>
         <title>Hot off the press: gadgets.* migration guide</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/FCXL7nVe07c/hot-off-press-gadgets-migration-guide.html</link>
         <description>A little over a month, we &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://igoogledeveloper.blogspot.com/2009/09/more-things-change-more-they-stay-same.html&quot;&gt;announced&lt;/a&gt; the deprecation of the legacy gadgets API, and in the intervening time have been hard at work on resources to help with the transition. The first of these resources, a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gadgets/docs/migration.html&quot;&gt;gadgets.* migration guide&lt;/a&gt;, has just been posted to code.google.com.&lt;br /&gt;&lt;br /&gt;The guide includes mappings between _IG_* and gadgets.* methods, helper functions, and pointers to third-party libraries that you can use in your updated gadgets.&lt;br /&gt;&lt;br /&gt;If you have any questions about the migration guide, or the transition from _IG_* to gadgets.*, please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-gadgets-api&quot;&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-8396892912716333425?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/FCXL7nVe07c&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-8396892912716333425</guid>
         <pubDate>Mon, 19 Oct 2009 07:55:00 -0700</pubDate>
      </item>
      <item>
         <title>Deprecating shareable-prefs API on iGoogle</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/wXGzXMVLyvg/deprecating-shareable-prefs-api-on.html</link>
         <description>If you don't know about or use the shareable-prefs API, you can safely stop reading now. If you do, we want to let you know that we'll be deprecating this API and feature.&lt;br /&gt;&lt;br /&gt;A little over a year ago, iGoogle added &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlegadgetsapi.blogspot.com/2008/04/write-collaborative-gadget-with-one.html&quot;&gt;shareable-prefs&lt;/a&gt;, enabling gadgets to share state across multiple users' pages. Since then, iGoogle has rolled out support for OpenSocial, enabling a collaboration model that is more tightly integrated into an application's design. Given this, along with the low adoption of the shareable-prefs feature in gadgets, we've decided it's time to deprecate the shareable-prefs feature.&lt;br /&gt;&lt;br /&gt;In the next few weeks, iGoogle will remove the UI elements for shareable-prefs, preventing any new gadgets from implementing this feature. A few weeks later, iGoogle will break the links between these gadgets entirely, at which point, the gadgets will behave as if they were never shared at all. However, both users will retain the data in their preferences. The gadgets should continue to function in every other regard, but gadgets that wish to share data between users should implement OpenSocial's requestShareApp (paired with appdata, or a 3rd-party storage mechanism).&lt;br /&gt;&lt;br /&gt;If you have any questions about these changes, please let us know in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://groups.google.com/group/google-gadgets-api&quot;&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-5339629861584282362?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/wXGzXMVLyvg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-5339629861584282362</guid>
         <pubDate>Tue, 29 Sep 2009 09:41:00 -0700</pubDate>
      </item>
      <item>
         <title>Reinforcements in the war on slow</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/iaZZYWhk8H4/reinforcements-in-war-on-slow.html</link>
         <description>On the iGoogle team we're always working to balance the needs of our users with the needs of our developers, to make sure we're creating an environment where everyone benefits. We want users to have access to the very best gadgets, hence we want to make sure we provide our developers with all the tools and information they need to create those gadgets.&lt;br /&gt;&lt;br /&gt;Recently, we announced plans to mark gadgets in the directory that were especially slow to load. We have some new tools on the way that will help make it easier for developers to streamline their gadgets. So we've decided to hold off on labeling gadgets until we've released these new tools and give developers a chance to use them to improve their gadgets.&lt;br /&gt;&lt;br /&gt;In the meantime, there are still plenty of things that can be done to fight gadget latency &amp;mdash; be sure to check out our latency tips on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/speed/articles/optimizing-opensocial-gadgets.html&quot;&gt;Google Code&lt;/a&gt;, and our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.opensocial.org/index.php?title=OpenSocial_Latency_Combat_Field_Manual&quot;&gt;Latency Combat Field Manual&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Tyler Odean, Product Manager, iGoogle Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3182313514153044988?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/iaZZYWhk8H4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-3182313514153044988</guid>
         <pubDate>Fri, 18 Sep 2009 09:09:00 -0700</pubDate>
      </item>
      <item>
         <title>The more things change, the more they stay the same</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/ZggJZdXJcaQ/more-things-change-more-they-stay-same.html</link>
         <description>The &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gadgets/docs/legacy/dev_guide.html&quot;&gt;legacy&lt;/a&gt; gadgets API has had a storied life, as both the first version of the gadgets API that drove iGoogle, and the direct predecessor of the current &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gadgets/docs/dev_guide.html&quot;&gt;gadgets.*&lt;/a&gt; API. As with many APIs there comes a time when we must say goodbye to the past, and embrace the present. The gadgets.* API has gained wide acceptance, both on Google and non-Google gadget containers, and is the standard API for gadget development. And so, as of today, the legacy gadgets API is officially deprecated.&lt;br /&gt;&lt;br /&gt;I'll give you all a moment to wipe away the tears of sadness (or joy as the case may be). Now, here are the details:&lt;ul&gt;&lt;li&gt;The legacy API is officially deprecated as of today, September 14th.&lt;/li&gt;&lt;li&gt;For three months, the legacy API will continue in its current state.&lt;/li&gt;&lt;li&gt;On or around December 14th, any new gadget submissions to the iGoogle directory must be using the gadgets.*, in order to be accepted, but existing gadgets may continue to use the legacy API.&lt;/li&gt;&lt;li&gt;On the same date, the remaining inlined gadgets will be disabled.&lt;/li&gt;&lt;li&gt;Finally, one year after deprecation, September 14th, 2010, gadgets using the legacy API will cease to function on iGoogle, and the majority of other Google-owned gadget containers (such as orkut, Gmail, and Calendar).&lt;/li&gt;&lt;li&gt;Reminders will be posted when these important dates approach.&lt;/li&gt;&lt;/ul&gt;We're also working on some tools to aid you in the transition: a gadget migration tool that will parse your existing gadget and convert legacy calls to gadgets.*, and a migration guide for developers who wish to migrate their gadgets by hand. Watch for announcements on these tools in the next few weeks.&lt;br /&gt;&lt;br /&gt;For most gadgets, the changes should be simple to implement. For each _IG_* method, there is usually a direct equivalent gadgets.* method. For instance, _IG_AdjustIFrameHeight maps directly to gadgets.window.adjustHeight, and performing a find and replace is sufficient. In a small subset of cases, multiple _IG_* methods map to a single gadgets.* method. For instance, _IG_FetchContent and _IG_FetchXmlContent both map to gadgets.io.makeRequest with different parameters. Developers should refer to the relevant section of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/gadgets/docs/dev_guide.html&quot;&gt;developer's guide&lt;/a&gt; to find gadgets.* equivalents.&lt;br /&gt;&lt;br /&gt;If you have any questions, as always, feel free to inquire in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-gadgets-api&quot;&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-3770399123810674678?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/ZggJZdXJcaQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-3770399123810674678</guid>
         <pubDate>Mon, 14 Sep 2009 05:08:00 -0700</pubDate>
      </item>
      <item>
         <title>Going faster than a roller coaster</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/JSns2Kp5ZMQ/going-faster-than-roller-coaster.html</link>
         <description>Users love fast gadgets. Fast gadgets are more likely to remain installed, and will see higher usage. Fast gadgets may also &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/sessions/DesigningOpenSocialAppsSpeedScale.html&quot;&gt;cost less&lt;/a&gt; to keep running.&lt;br /&gt;&lt;br /&gt;Slow gadgets make users unhappy, both with individual gadgets, and with iGoogle. Unfortunately, there hasn't been a way to tell a slow gadget from a fast one until it's been installed. To remedy this, starting in late September, the iGoogle directory will add a &quot;slow&quot; badge next to the entry of any gadget that's slow enough to cause speed-related user dissatisfaction.&lt;br /&gt;&lt;br /&gt;To help you get your gadgets in top-notch shape before the badges roll out, check out our new latency tips on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/speed/articles/optimizing-opensocial-gadgets.html&quot;&gt;Google Code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-2747248154743418723?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/JSns2Kp5ZMQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-2747248154743418723</guid>
         <pubDate>Mon, 31 Aug 2009 06:27:00 -0700</pubDate>
      </item>
      <item>
         <title>iGoogle is a social being</title>
         <link>http://feedproxy.google.com/~r/IgoogleDeveloperBlog/~3/0y9o9_gIJlg/igoogle-is-social-being.html</link>
         <description>If you've been a devoted reader of this blog you're probably no stranger to the idea that &quot;social is better&quot; when it comes to the web. Activities such as reading the news, doing a crossword puzzle, sharing a todo list, or watching a video are all better when done with a friend. Coincidentally, these are all things that iGoogle users love to do, so bringing social to iGoogle is a logical next step.&lt;br /&gt;&lt;br /&gt;Developers have had a chance to sneak a peek at what iGoogle has been doing in the social space for many months, in the iGoogle developer sandbox. As of today, social gadgets taking advantage of the OpenSocial API will now work in both the US and Australia, with other countries soon to follow. That's tens of millions of iGoogle users with access to social gadgets, if you're keeping count.&lt;br /&gt;&lt;br /&gt;Of course, iGoogle is a little bit different than most of the sites which support OpenSocial, so here's a quick rundown of the differences:&lt;ol&gt;&lt;li&gt;An iGoogle page is personal, and not shared with other users. In OpenSocial terms, this means that &lt;span style=&quot;font-family:monospace;&quot;&gt;VIEWER&lt;/span&gt; and &lt;span style=&quot;font-family:monospace;&quot;&gt;OWNER&lt;/span&gt; are always the same person.&lt;/li&gt;&lt;li&gt;Friendship between two users may be non-mutual. This allows developers to use a &quot;following&quot; model in their applications. For cases where it's important to verify mutual friendship (sharing private data, for instance), developers can use the &lt;span style=&quot;font-family:monospace;&quot;&gt;isFriendsWith&lt;/span&gt; filter when requesting the user's mutual friends.&lt;/li&gt;&lt;li&gt;iGoogle has users without canvas view, with canvas view but without social, and with social, all at the same time. And, some users sign in to use iGoogle while others remain signed out. Developers should make sure their gadgets work gracefully across feature sets so that users always have the optimal experience. This &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://igoogledeveloper.blogspot.com/2009/08/every-happy-gadget-is-same-every.html&quot;&gt;blog post&lt;/a&gt; provides more details and an example gadget for checking different cases.&lt;/li&gt;&lt;li&gt;iGoogle supports organic growth of applications with two mechanisms.&lt;ul&gt;&lt;li&gt;Application sharing (via &lt;span style=&quot;font-family:monospace;&quot;&gt;requestShareApp&lt;/span&gt;), allows developers to reach a wider audience by encouraging users to engage their friends inside of a given application. By default, requestShareApp will list all of the user's Friends and users can auto invite new friends by email. iGoogle will email recipients without iGoogle accounts, or present a notification within the UI to existing iGoogle users to add the gadget and become friends.&lt;/li&gt;&lt;li&gt;Updates (via &lt;span style=&quot;font-family:monospace;&quot;&gt;requestCreateActivity&lt;/span&gt;), allow developers to call out specific user actions, to share them with a wider audience. There is a current limit of 3 updates per user, per app, per day, which may be increased in the future.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ul&gt;To see some great examples of new (or upgraded) gadgets using social features, check out &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/igsocial&quot;&gt;this page&lt;/a&gt;. Then, when you're ready, take a look at the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/igoogle/docs/gs.html&quot;&gt;getting started guide&lt;/a&gt; for details on writing your own social gadgets for iGoogle. As always, if you have questions, please visit us in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-gadgets-api&quot;&gt;iGoogle Developer Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Dan Holevoet, Developer Programs&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2373604388319154209-2343069903182521609?l=igoogledeveloper.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/IgoogleDeveloperBlog/~4/0y9o9_gIJlg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Dan Holevoet</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-2373604388319154209.post-2343069903182521609</guid>
         <pubDate>Wed, 12 Aug 2009 05:56:00 -0700</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;AJAX Search API Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Web Search in Your Country</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/Zi5FcO4xKUo/web-search-in-your-country.html</link>
         <description>&lt;p&gt;I am happy to announce the addition of the ability to scope your searches to a specific country in the AJAX Web Search API. Now, if you have a lot of visitors in Madagascar, you can make sure that the search results displayed on your site are tailored to them. All it takes is a small change to your code.&lt;/p&gt;&lt;p&gt;There are three possible ways to implement, depending on how you're using the API:&lt;/p&gt;&lt;ol&gt;&lt;li&gt; If you use the loader, you can simply load jsapi on the domain you're interested in (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajax/playground/#set_google_locale_using_hostname&quot;&gt;example&lt;/a&gt;), such as:&lt;br /&gt;&lt;pre&gt;&amp;lt;script src=&quot;http://www.google.es/jsapi&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Alternately, you can set this with the web search object's .setRestriction method (&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajax/playground/#set_google_locale_restriction&quot;&gt;example&lt;/a&gt;): &lt;br /&gt;&lt;pre&gt;var ws = new google.search.WebSearch();&lt;br /&gt;ws.setRestriction(google.search.Search.RESTRICT_EXTENDED_ARGS,&lt;br /&gt; {'gl' : 'es'});&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Finally, if you're using the RESTful interface, all you have to do is append a &quot;gl&quot; URL parameter to your request: &lt;br /&gt;&lt;pre&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ajax.googleapis.com/ajax/services/search/web?v=1.0&amp;q=flowers&amp;gl=fr&quot;&gt;http://ajax.googleapis.com/ajax/services/search/web?v=1.0&amp;amp;q=flowers&amp;amp;gl=fr&lt;/a&gt;&lt;/pre&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Most valid &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/ISO_3166-1&quot;&gt;country codes&lt;/a&gt; will work, as long as Google has a home page on that country's top level domain (e.g. &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.es/&quot;&gt;google.es&lt;/a&gt;). If you use an invalid or unsupported country code, you'll get an error message letting you know.&lt;/p&gt;&lt;p&gt;We're excited to bring you this addition to the API, and look forward to seeing the innovative ways in which you use this new feature to improve your users' experience. Please drop us a line with your thoughts (or questions) on our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-ajax-search-api&quot;&gt;discussion group&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-4414084535137901999?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=Zi5FcO4xKUo:eWC5w7vuvIY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=Zi5FcO4xKUo:eWC5w7vuvIY:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=Zi5FcO4xKUo:eWC5w7vuvIY:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/Zi5FcO4xKUo&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Jeff Scudder</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-4414084535137901999</guid>
         <pubDate>Mon, 12 Oct 2009 04:23:00 -0700</pubDate>
      </item>
      <item>
         <title>Google Chrome Frame Ajax Detection</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/8eVfRcIbR_c/google-chrome-frame-ajax-detection.html</link>
         <description>&lt;p&gt;In partnership with the Google Chrome Frame team, we are making available a library to allow your web application to detect the presence of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/chrome/chromeframe/&quot;&gt;Google Chrome Frame&lt;/a&gt;. We on the Ajax team are excited about the possibilities of this add-on improving JavaScript performance and enabling some of the new features available in HTML5. If you have a web application which makes use of these new features, you can use this library to prompt the user to install Google Chrome Frame, or recognize when a user has just installed it. The library provides granular controls so that you can create the user experience which best suits your site.&lt;/p&gt;&lt;p&gt;As a short example, I've created the following &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ajax-apis.appspot.com/gcfcheck-demo&quot;&gt;simple demo&lt;/a&gt; which just detects whether Google Chrome Frame is installed or not with an alternate message if you are in a browser for which this plugin is not available.&lt;/p&gt;&lt;p&gt;&lt;div&gt;Do you have Google Chrome Frame installed?&lt;div id=&quot;answer&quot;&gt;We're checking on that now.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;Ben Lisbakken has also added detection for Google Chrome Frame to the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajax/playground/&quot;&gt;Ajax Playground&lt;/a&gt;. If you &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/google-ajax-examples/source/browse/trunk/interactive_samples/index.html&quot;&gt;view source&lt;/a&gt; on the page you can see another example of a customized CFInstall.check implementation which is designed to fit the page.&lt;/p&gt;&lt;p&gt;For more details on the Google Chrome Frame Ajax API, see the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/chrome/chromeframe/developers_guide.html#CFInstall_check_Options&quot;&gt;documentation&lt;/a&gt; and for questions, please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-chrome-frame&quot;&gt;discussion group&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-8524049149400584?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=8eVfRcIbR_c:C2LCPa0szXA:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=8eVfRcIbR_c:C2LCPa0szXA:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=8eVfRcIbR_c:C2LCPa0szXA:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/8eVfRcIbR_c&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Jeff Scudder</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-8524049149400584</guid>
         <pubDate>Mon, 28 Sep 2009 02:42:00 -0700</pubDate>
      </item>
      <item>
         <title>More Languages, More Keyboards</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/__bX9CBuBoM/more-languages-more-keyboards.html</link>
         <description>&lt;p&gt;The language APIs keep right on trucking, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2009/08/google-translate-now-speaks-51.html&quot;&gt;released recently&lt;/a&gt; are a handful of new translation languages, pairs, and keyboard layouts.&lt;/p&gt;&lt;p&gt;We've added the ability to use machine translation to or from the following languages:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Afrikaans&lt;/li&gt;&lt;li&gt;Belarusian&lt;/li&gt;&lt;li&gt;Icelandic&lt;/li&gt;&lt;li&gt;Irish&lt;/li&gt;&lt;li&gt;Macedonian&lt;/li&gt;&lt;li&gt;Malay&lt;/li&gt;&lt;li&gt;Persian&lt;/li&gt;&lt;li&gt;Swahili&lt;/li&gt;&lt;li&gt;Welsh&lt;/li&gt;&lt;li&gt;Yiddish&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;With the addition of the above the total count for language pair combination comes to a mind boggling 2550 pairs. In addition, we find the above additions exciting because, for the first time, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-africa.blogspot.com/2009/09/google-translate-now-available-for.html&quot;&gt;African languages&lt;/a&gt; are available through the API and we now support all &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://europa.eu/languages/en/home&quot;&gt;23 Official European Union languages&lt;/a&gt;.&lt;p&gt;&lt;p&gt;A few months ago we &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleajaxsearchapi.blogspot.com/2009/06/introducing-virtual-keyboard-api.html&quot;&gt;announce our virtual keyboard API&lt;/a&gt; and this month we've added nine new &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/documentation/#KeyboardSupportedLayout&quot;&gt;keyboard layouts&lt;/a&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Bulgarian&lt;/li&gt;&lt;li&gt;Czech&lt;/li&gt;&lt;li&gt;Greek&lt;/li&gt;&lt;li&gt;Hebrew&lt;/li&gt;&lt;li&gt;Hungarian - 101 layout&lt;/li&gt;&lt;li&gt;Slovak&lt;/li&gt;&lt;li&gt;Slovenian&lt;/li&gt;&lt;li&gt;Turkish - Q layout&lt;/li&gt;&lt;li&gt;Ukrainian - 101 layout&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Here's a simple example of using the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://savedbythegoog.appspot.com/?id=ag5zYXZlZGJ5dGhlZ29vZ3ISCxIJU2F2ZWRDb2RlGNKu1gEM&quot;&gt;Slovak keyboard&lt;/a&gt; layout.&lt;/p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://1.bp.blogspot.com/_WhF8No7Ryt4/Sq_MX1GQZ0I/AAAAAAAAABM/IeuS-BMn-3s/s1600-h/SlovakKeyboard.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:295px;&quot; src=&quot;http://1.bp.blogspot.com/_WhF8No7Ryt4/Sq_MX1GQZ0I/AAAAAAAAABM/IeuS-BMn-3s/s400/SlovakKeyboard.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5381744789493409602&quot;/&gt;&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-9188132311247785678?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=__bX9CBuBoM:Ai0Sxq7DfQk:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=__bX9CBuBoM:Ai0Sxq7DfQk:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=__bX9CBuBoM:Ai0Sxq7DfQk:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/__bX9CBuBoM&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Jeff Scudder</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-9188132311247785678</guid>
         <pubDate>Tue, 15 Sep 2009 03:14:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://1.bp.blogspot.com/_WhF8No7Ryt4/Sq_MX1GQZ0I/AAAAAAAAABM/IeuS-BMn-3s/s72-c/SlovakKeyboard.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Custom Search with Custom Style: Peanut Butter and Jelly</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/6t73vTwB9q4/custom-search-with-custom-style-peanut.html</link>
         <description>&lt;p&gt;Creating a custom look and feel for your website can have significant benefits in everything from improving usability to setting a professional or playful tone for your website. In many cases, letting users search the content of your site and related sites gets them the information they need faster. After all, a speedy user experience is a happy user experience. Here are some examples of how Custom Search and custom styles are as easy (and delicious) as peanut butter and jelly.&lt;/p&gt;&lt;p&gt;We start with a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/webelements/customsearch/&quot;&gt;Custom Search Element&lt;/a&gt;, which uses the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxsearch/documentation/customsearch/index.html&quot;&gt;CustomSearchControl&lt;/a&gt; to add a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/coop/cse/&quot;&gt;Custom Search Engine&lt;/a&gt; to my web page. If you've never used a Custom Search engine before, I think you'll find a lot to love: it uses Google's search technology to include a specific group of websites for indexing, and you can &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://www.google.com/adsense/static/en_US/Afs.html&quot;&gt;share in ad revenue&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;One of the many benefits of using the AJAX Search APIs to dynamically add search capabilities to your web pages is that you can also control the look and feel of the search input and results by using open web standards like cascading style sheets (CSS). When you combine this styling with Custom Search, you can create a seamless search experience for your users.&lt;/p&gt;&lt;p&gt;You can begin by changing the search input box (dynamically added to your page by default) to use an input box that you've placed on the page wherever you like.&lt;/p&gt;&lt;pre&gt;// Set drawing options to use my text box&lt;br /&gt;// as input instead of having the library create one.&lt;br /&gt;var drawOptions = new google.search.DrawOptions();&lt;br /&gt;drawOptions.setInput(&lt;br /&gt; document.getElementById('query_input'));&lt;br /&gt;&lt;br /&gt;// Draw the control in content div&lt;br /&gt;customSearchControl.draw(&lt;br /&gt; 'results', drawOptions);&lt;/pre&gt;&lt;p&gt;With the above changes we get a page that &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ajax-apis.appspot.com/cse-less-style&quot;&gt;looks like this&lt;/a&gt;:&lt;/p&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_WhF8No7Ryt4/SoBbSTlOPjI/AAAAAAAAAAc/0KGEys_H9nA/s1600-h/ajax1.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:194px;&quot; src=&quot;http://2.bp.blogspot.com/_WhF8No7Ryt4/SoBbSTlOPjI/AAAAAAAAAAc/0KGEys_H9nA/s400/ajax1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5368391125877800498&quot;/&gt;&lt;/a&gt;&lt;p&gt;Now that we're able to use a Custom Search box (look ma, no button push required!) we can add CSS rules to change fonts, colors, and more in the search results.&lt;/p&gt;&lt;p&gt;For example, see: &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ajax-apis.appspot.com/cse-style&quot;&gt;http://ajax-apis.appspot.com/cse-style&lt;/a&gt; which has CSS rules that effect the styling of the search results and compare it to our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ajax-apis.appspot.com/cse-less-style&quot;&gt;first step&lt;/a&gt; which uses the default styles.&lt;/p&gt;&lt;p&gt;Take a look at the CSS rules to get an idea for how this works, and how you can do custom styling to fit your own website.&lt;/p&gt;&lt;p&gt;We can change the font and add a border around each search result:&lt;/p&gt;&lt;pre&gt;#results .gsc-results {&lt;br /&gt; /* Sets font for titles, snippets, and URLs. */&lt;br /&gt; font-family: arial, helvetica, sans-serif;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#results .gsc-result {&lt;br /&gt; position: relative;&lt;br /&gt; border: 1px solid #eee;&lt;br /&gt; border-left: 10px solid #eee;&lt;br /&gt; padding: 8px 8px 8px 20px;&lt;br /&gt; border-radius: 8px;&lt;br /&gt; -webkit-border-radius: 8px;&lt;br /&gt; -moz-border-radius: 8px;&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;We can also change the style of a single result when the user moves the mouse cursor over it:&lt;/p&gt;&lt;pre&gt;#results .gsc-result:hover {&lt;br /&gt; border: 1px solid #888;&lt;br /&gt; border-left: 10px solid #888;&lt;br /&gt;}&lt;/pre&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_WhF8No7Ryt4/SoBbb6aJxwI/AAAAAAAAAAk/MQVBCapHW6k/s1600-h/ajax2.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:225px;&quot; src=&quot;http://3.bp.blogspot.com/_WhF8No7Ryt4/SoBbb6aJxwI/AAAAAAAAAAk/MQVBCapHW6k/s400/ajax2.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5368391290919175938&quot;/&gt;&lt;/a&gt;&lt;p&gt;These are just a couple of examples. Since the CSS styling is handled by the browser, you can use any supported CSS rules to select portions of the search results. For more information on the result HTML structure and the CSS classes you may want to select in your own customizations, see the documentation on &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxsearch/documentation/reference.html#_intro_GResultCss&quot;&gt;styling AJAX Search results&lt;/a&gt;.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-7796710236096811046?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=6t73vTwB9q4:g8oVIOsAreo:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=6t73vTwB9q4:g8oVIOsAreo:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=6t73vTwB9q4:g8oVIOsAreo:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/6t73vTwB9q4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Jeff Scudder</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-7796710236096811046</guid>
         <pubDate>Mon, 10 Aug 2009 03:21:00 -0700</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_WhF8No7Ryt4/SoBbSTlOPjI/AAAAAAAAAAc/0KGEys_H9nA/s72-c/ajax1.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Behind the scenes with two AJAX API Developers</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/M2pP2FIFGaA/behind-scenes-with-two-ajax-api.html</link>
         <description>We enjoy featuring real-world applications that show how versatile the AJAX APIs can be. Below we're highlighting two very different apps and the developers who built them:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;AroundMe&lt;/span&gt;&lt;br /&gt;AroundMe is an iPhone application where the AJAX APIs are central to the user experience. Specifically, the app utilizes the Local Search API to enable users to find information about their surroundings. In the videos below, Marco Pifferi (the developer behind AroundMe) gives a demo of his app, his thoughts on using the AJAX APIs, and tips for integrating them in mobile apps.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Mibbit&lt;/span&gt;&lt;br /&gt;Mibbit is a web-based chat application that uses the AJAX APIs to enhance the chat experience. The language APIs help users to translate their messages into a number of different languages. Mibbit also uses the Maps API and YouTube API to display embedded maps or YouTube videos if a user includes a Maps or YouTube URL in their chat. Jimmy Moore, creator of Mibbit, walks through Mibbit in his video below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; Do you have a great app that uses the AJAX APIs? &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/videos/submit.html&quot;&gt;Submit a video&lt;/a&gt; about it and we may feature it on this blog. Questions? Stop by our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-AJAX-Search-API&quot;&gt;support forum&lt;/a&gt; or &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.mibbit.com/?server=irc.freenode.net&amp;amp;channel=%23googleajaxapis&quot;&gt;IRC channel&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-1927544842322758476?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=M2pP2FIFGaA:Fet1444BaUs:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=M2pP2FIFGaA:Fet1444BaUs:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=M2pP2FIFGaA:Fet1444BaUs:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/M2pP2FIFGaA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Adam Feldman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-1927544842322758476</guid>
         <pubDate>Mon, 20 Jul 2009 10:59:00 -0700</pubDate>
      </item>
      <item>
         <title>Introducing the Virtual Keyboard API</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/bpZvMQqX91E/introducing-virtual-keyboard-api.html</link>
         <description>&lt;p&gt;It is often difficult for Internet users to input text in many non-Latin script-based languages for a variety of reasons. The correct keyboard layout may not be installed on the computer they're using - sometimes such a layout may not be well developed or widely available. This poses a challenging problem for web developers because there is no way they can ensure that their users have access to this very basic input technology. Our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration&quot; id=&quot;fp3y&quot; title=&quot;Transliteration API&quot;&gt;Transliteration API&lt;/a&gt; can help, but requires that the user know multiple languages.&lt;br /&gt;&lt;br /&gt;Right on the heels of introducing support for &lt;a rel=&quot;nofollow&quot; title=&quot;translating Persian (Farsi)&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2009/06/google-translates-persian.html&quot; id=&quot;rpfm&quot;&gt;translating Persian (Farsi)&lt;/a&gt;, we've added a new &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/documentation/#Keyboard&quot; id=&quot;h8oa&quot; title=&quot;Virtual Keyboard API&quot;&gt;Virtual Keyboard API&lt;/a&gt; into the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/&quot; id=&quot;okla&quot; title=&quot;Google AJAX Language API&quot;&gt;Google AJAX Language API&lt;/a&gt; to further assist with text input. With this, developers can help their users input text without relying on the right software being installed on the computer they happen to be using.&lt;br /&gt;&lt;br /&gt;It couldn't be easier to get this on your page. Simply load the right package:&lt;pre class=&quot;code&quot;&gt;google.load(&quot;elements&quot;, &quot;1&quot;, {&lt;br /&gt; packages: &quot;keyboard&quot;&lt;br /&gt;});&lt;/pre&gt;&lt;br /&gt;Then create a keyboard, specifying the keyboard layout and text field to bind to:&lt;pre class=&quot;code&quot;&gt;var kbd = new google.elements.keyboard.Keyboard(&lt;br /&gt; [google.elements.keyboard.LayoutCode.Arabic],&lt;br /&gt; ['myTextArea']);&lt;/pre&gt;&lt;br /&gt;And here's what it looks like:&lt;/p&gt;&lt;div id=&quot;mb4b&quot; style=&quot;text-align:left;&quot;&gt; &lt;img src=&quot;https://docs.google.com/a/google.com/File?id=chj3qbn7_3ccmdkrkf_b&quot; style=&quot;width:402px;height:182px;&quot;/&gt; &lt;/div&gt;&lt;p&gt;This gives you the control to provide a better user experience, even for multilingual websites. By creating multiple keyboards with different layouts, each text field can be bound to the appropriate keyboard - and the user will see only the keyboard attached to whichever text field has the focus.&lt;br /&gt;&lt;br /&gt;But don't take my word for it - check out a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajax/playground/#virtual_keyboard&quot; id=&quot;pydr&quot; title=&quot;sample&quot;&gt;sample&lt;/a&gt; for yourself. Notice that in addition to allowing users to click on the virtual keyboard, it also temporarily transforms the key assignments on their physical keyboard, allowing rapid typing for those users accustomed to a given layout.&lt;br /&gt;&lt;br /&gt;With this initial release, we are launching 5 language layouts. They are: &lt;/p&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt; &lt;div&gt; &lt;ul&gt;&lt;li&gt; Arabic (&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;العربية)&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt; Hindi (&lt;span style=&quot;font-family:Arial;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;हिन्दी)&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt; Polish (&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Polski)&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt; Russian (&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;Русский)&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt; Thai (&lt;span style=&quot;&quot;&gt;&lt;span style=&quot;font-size:100%;&quot;&gt;ไทย)&lt;/span&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ul&gt; &lt;/div&gt; &lt;/div&gt; &lt;p&gt;&lt;br /&gt;We plan to roll out support for more keyboard layouts in the future. But in the meantime, read through the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/documentation/referenceKeyboard.html&quot; id=&quot;j4cg&quot; title=&quot;class reference&quot;&gt;class reference&lt;/a&gt; and see the rest of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajax/playground/#virtual_keyboard&quot; id=&quot;gj1i&quot; title=&quot;Code Playground samples&quot;&gt;Code Playground samples&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After you've had time to experiment, let us know what you think and which other layouts you'd like to see. Feedback is always welcome in our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-AJAX-Search-API&quot; id=&quot;d8z9&quot; title=&quot;support forum&quot;&gt;support forum&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.mibbit.com/?server=irc.freenode.net&amp;amp;channel=%23googleajaxapis&quot; id=&quot;m0_:&quot; title=&quot;IRC channel&quot;&gt;IRC channel&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; &lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-6051574880089844360?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=bpZvMQqX91E:9NTtooeISf4:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=bpZvMQqX91E:9NTtooeISf4:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=bpZvMQqX91E:9NTtooeISf4:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/bpZvMQqX91E&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Adam Feldman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-6051574880089844360</guid>
         <pubDate>Mon, 22 Jun 2009 05:07:00 -0700</pubDate>
      </item>
      <item>
         <title>Ext-core ready to go</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/REcNAghn_6o/ext-core-ready-to-go.html</link>
         <description>Recently, the guys over at Ext JS released ext-core under an MIT license, which was a big win for open source! Today, they released a stable (non-beta) version of this library and we are proud to be part of that announcement by hosting the new version. You can now pull ext-core from Google servers:&lt;pre class=&quot;code&quot;&gt;// directly access it&lt;br /&gt;http://ajax.googleapis.com/ajax/libs/ext-core/3.0.0/ext-core.js&lt;br /&gt;// alias the newest 3.0.x version&lt;br /&gt;http://ajax.googleapis.com/ajax/libs/ext-core/3.0/ext-core.js&lt;br /&gt;// alias the newest 3.x.x version&lt;br /&gt;http://ajax.googleapis.com/ajax/libs/ext-core/3/ext-core.js&lt;br /&gt;// directly access the uncompressed code&lt;br /&gt;http://ajax.googleapis.com/ajax/libs/ext-core/3.0.0/ext-core-debug.js&lt;br /&gt;&lt;/pre&gt;You can also use it from the loader:&lt;pre class=&quot;code&quot;&gt;google.load('ext-core', '3.0');&lt;br /&gt;google.load('ext-core', '3', {uncompressed : true});&lt;br /&gt;&lt;/pre&gt;Thanks to all for the requests to add ext-core to our Libraries API, and big thanks to Ext JS for providing their library so openly! For more information, head over to their &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://extjs.com/blog/2009/06/10/building-a-rating-widget-with-ext-core-30-final-and-google-cdn/&quot;&gt;blog post&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-5044731694533724177?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=REcNAghn_6o:4jlI_bDhblc:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=REcNAghn_6o:4jlI_bDhblc:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=REcNAghn_6o:4jlI_bDhblc:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/REcNAghn_6o&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Ben Lisbakken</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-5044731694533724177</guid>
         <pubDate>Thu, 11 Jun 2009 02:35:00 -0700</pubDate>
      </item>
      <item>
         <title>Arabic Transliteration added to the AJAX Language API</title>
         <link>http://feedproxy.google.com/~r/blogspot/RBev/~3/ekYJ73TyAlE/arabic-transliteration-added-to-ajax.html</link>
         <description>Last year we launched the Transliteration API as an addition to the AJAX Language API. This gave users the ability to transliterate (the process of phonetically converting words from one script into another) text into several Indic languages using a normal English keyboard.&lt;br /&gt;&lt;br /&gt;We're happy to announce that we've now added Arabic to the list of supported languages. Now, you can allow your users to easily input Arabic-language text into any text field or text area on your web page without switching to a non-Latin alphabet keyboard - just like on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/ta3reeb/&quot; id=&quot;xfpj&quot; title=&quot;our Labs page&quot;&gt;Labs page&lt;/a&gt;. For example, if the user types '&lt;i&gt;mar7aban bekom'&lt;/i&gt;, the API will transliterate each word, with the result '&lt;span style=&quot;font-size:100%;&quot;&gt;&lt;span style=&quot;font-family:Tahoma;&quot;&gt;مرحبا بكم&lt;/span&gt;&lt;/span&gt;' (Arabic for &lt;i&gt;welcome&lt;/i&gt;). The API will even automatically adjust the direction of the text area to support this right-to-left language.&lt;br /&gt;&lt;br /&gt;Take a look at the &lt;a rel=&quot;nofollow&quot; title=&quot;documentation&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajaxlanguage/documentation/#Transliteration&quot; id=&quot;lua-&quot;&gt;documentation&lt;/a&gt; and then head over to the &lt;a rel=&quot;nofollow&quot; title=&quot;Code Playground&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/ajax/playground/#transliterate_arabic&quot; id=&quot;h0gs&quot;&gt;Code Playground&lt;/a&gt; to give it a try for yourself. If you have any questions, stop by the &lt;a rel=&quot;nofollow&quot; title=&quot;Google AJAX API developer forum&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/Google-AJAX-Search-API&quot; id=&quot;a-.w&quot;&gt;Google AJAX API developer forum&lt;/a&gt; or &lt;a rel=&quot;nofollow&quot; title=&quot;IRC channel&quot; target=&quot;_blank&quot; href=&quot;http://www.mibbit.com/?server=irc.freenode.net&amp;amp;channel=%23googleajaxapis&quot; id=&quot;npsz&quot;&gt;IRC channel&lt;/a&gt;.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/29072373-474641750922618239?l=googleajaxsearchapi.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=ekYJ73TyAlE:gHIRgqK8RPc:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?a=ekYJ73TyAlE:gHIRgqK8RPc:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/RBev?i=ekYJ73TyAlE:gHIRgqK8RPc:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/RBev/~4/ekYJ73TyAlE&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Adam Feldman</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-29072373.post-474641750922618239</guid>
         <pubDate>Sun, 07 Jun 2009 17:23:00 -0700</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;Code Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Captions available for all Google I/O videos</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/HhJ7n0rSINg/captions-available-for-all-google-io.html</link>
         <description>We work hard to make sure that the videos on the GoogleDevelopers channel on Youtube are captioned, but when &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/view_play_list?p=A083BA7A5413027E&amp;amp;sort_field=viewcount&quot; id=&quot;ref:&quot; title=&quot;I/O added over a hundred hours of video content&quot;&gt;I/O added over a hundred hours of video content&lt;/a&gt;, we got a little behind. I'm happy to announce that we're finally caught up! Every English and Spanish video from &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/events/io/&quot;&gt;I/O&lt;/a&gt; now has captions that you can turn on in YouTube.&lt;br /&gt;&lt;br /&gt;Didn't know we had captions? Just click to select captions from the menu in the lower right corner of the video player.&lt;br /&gt;&lt;br /&gt;Some caption and subtitle-related news:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; A group of volunteers from Russia used the &lt;u style=&quot;color:rgb(51, 102, 255);&quot;&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://translated.by/&quot; id=&quot;oh0v&quot; title=&quot;translated.by software&quot;&gt;translated.by software&lt;/a&gt;&lt;/u&gt; to crowdsource translation for Google Wave video captions. Thank you, habratranslation! Check out one of the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.youtube.com/watch?v=v_UyVmITiYQ&amp;amp;cc_lang_pref=ru_ALL&amp;amp;cc_load_policy=1&quot; id=&quot;payt&quot; title=&quot;Wave videos with Russian subtitles&quot;&gt;Wave videos with Russian subtitles&lt;/a&gt;. (You have to choose Russian from the caption menu in YouTube to see them.)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;If you'd like to help translate captions for any of our videos, please email &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;mailto:google-video-captions@googlegroups.com&quot;&gt;google-video-captions@googlegroups.com&lt;/a&gt; with a request. We'd be happy to share any caption files that you might be interested in under a &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://creativecommons.org/licenses/by/3.0/&quot; id=&quot;mz0a&quot; title=&quot;creative commons attribution license&quot;&gt;creative commons attribution license&lt;/a&gt;. If you send us the translation, we'll credit you in the video caption track and blog about how awesome you are.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;In addition to machine translation for captions, YouTube now provides experimental &lt;i&gt;automatic caption transcription&lt;/i&gt; using the same speech recognition algorithms found in Google Voice. The GoogleDevelopers channel is part of the initial pilot, so this feature is available on many of our videos. To learn more, check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2009/11/automatic-captions-in-youtube.html&quot; id=&quot;fn1a&quot; title=&quot;blog post on the Official Google Blog&quot;&gt;blog post on the Official Google Blog&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Naomi Bilodeau, Google Developer Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-6694606334636801088?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=HhJ7n0rSINg:qr3xFI2DyfY:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=HhJ7n0rSINg:qr3xFI2DyfY:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=HhJ7n0rSINg:qr3xFI2DyfY:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/HhJ7n0rSINg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-6694606334636801088</guid>
         <pubDate>Fri, 20 Nov 2009 01:40:00 -0800</pubDate>
      </item>
      <item>
         <title>The latest addition to Google's open source projects</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/7Hha_K1PuIw/latest-addition-to-googles-open-source.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_EuCTzLdp3vE/SwSOXJf4dgI/AAAAAAAAC2M/2ot9ycKGFqc/s1600/youtube.png&quot;&gt;&lt;img style=&quot;float:right;border:0;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:72px;height:72px;&quot; src=&quot;http://3.bp.blogspot.com/_EuCTzLdp3vE/SwSOXJf4dgI/AAAAAAAAC2M/2ot9ycKGFqc/s400/youtube.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5405601981089216002&quot;/&gt;&lt;/a&gt;Did you know &lt;a rel=&quot;nofollow&quot; id=&quot;upyu&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/hosting/projects.html&quot; title=&quot;Google has released more than 300 open source projects&quot;&gt;Google has released more than 300 open source projects&lt;/a&gt; to date? Yesterday, we &lt;a rel=&quot;nofollow&quot; id=&quot;wf7q&quot; target=&quot;_blank&quot; href=&quot;http://apiblog.youtube.com/2009/11/enrich-your-site-with-youtube-direct.html&quot; title=&quot;announced&quot;&gt;announced&lt;/a&gt; the latest addition to Google's open source projects - &lt;a rel=&quot;nofollow&quot; id=&quot;tx6f&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/youtube-direct/&quot; title=&quot;YouTube Direct&quot;&gt;YouTube Direct&lt;/a&gt;, a new tool that enables any developer to solicit video submissions, moderate and display them on their website, all powered by YouTube. We recognize the role that open source plays at Google and how it helps us create better applications and we try to give back to the community as much as possible.&lt;br /&gt;&lt;br /&gt;YouTube Direct was built on top of &lt;a rel=&quot;nofollow&quot; id=&quot;acf5&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/youtube/overview.html&quot; title=&quot;YouTube's public APIs&quot;&gt;YouTube's public APIs&lt;/a&gt; and is designed to run on &lt;a rel=&quot;nofollow&quot; id=&quot;g3ve&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/appengine/&quot; title=&quot;Google App Engine&quot;&gt;Google App Engine&lt;/a&gt; - Google's highly scalable platform. To date, several media organizations like &lt;a rel=&quot;nofollow&quot; id=&quot;ji1z&quot; target=&quot;_blank&quot; href=&quot;http://abcnews.go.com/GMA/good-morning-america-thanksgiving-youtube-video-message-thankful/story?id=9096856&quot; title=&quot;ABC News&quot;&gt;ABC News&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; id=&quot;u89s&quot; target=&quot;_blank&quot; href=&quot;http://www.huffingtonpost.com/2009/11/16/hopenhagen-ambassador-con_n_356950.html&quot; title=&quot;The Huffington Post&quot;&gt;The Huffington Post&lt;/a&gt; and &lt;a rel=&quot;nofollow&quot; id=&quot;tlj9&quot; target=&quot;_blank&quot; href=&quot;http://www.politico.com/arena/video/going_rogue.html&quot; title=&quot;Politico&quot;&gt;Politico&lt;/a&gt; have taken advantage of the open platform to deploy their own version of YouTube Direct to empower citizen journalism and enrich their site in the process. We look forward to see for more creative usage of the tool.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Amanda Surya, YouTube Direct team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-7655015758038011435?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=7Hha_K1PuIw:FhaumdRqfoM:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=7Hha_K1PuIw:FhaumdRqfoM:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=7Hha_K1PuIw:FhaumdRqfoM:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/7Hha_K1PuIw&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-7655015758038011435</guid>
         <pubDate>Wed, 18 Nov 2009 08:20:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://3.bp.blogspot.com/_EuCTzLdp3vE/SwSOXJf4dgI/AAAAAAAAC2M/2ot9ycKGFqc/s72-c/youtube.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Welcome to Google Developer Relations, Don!</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/mJkZA6Q7Hcs/welcome-to-google-developer-relations.html</link>
         <description>A couple days ago, Google welcomed Don Dodge to our Developer Relations team, where he joins us as a Developer Advocate working with developers, startups, and other Google Apps partners. We're expecting Don to be a fantastic addition to our team. He's already a prominent voice in the developer community, well-known and highly-regarded among entrepreneurs, technologists, and the media.&lt;br /&gt;&lt;br /&gt;In the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.techcrunch.com/2009/11/04/microsoft-loses-don-dodge-this-is-a-huge-mistake/&quot; id=&quot;lm2c&quot; title=&quot;TechCrunch post&quot;&gt;TechCrunch post&lt;/a&gt; first announcing Don's availability, Michael Arrington wrote how Don, &quot;makes a big effort to give young startups the attention they deserve. This is a guy who gives a heck of a lot more to the community than he ever takes back.&quot; This dedication to the community of developers and the businesses they build is one of the things that excites us the most about having Don on our team. These businesses have been central to Google's success over the years, so we already know that Don's attitude will fit right in with our efforts. Don has deep experience working in startups from his days at companies like AltaVista, Napster, and Groove Networks, and has always continued to maintain the connection and passion for that community since leaving their ranks to join Microsoft, and now Google. We are eager for Don to share his personal experience and professional insights with developers and small businesses &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/googleapps/&quot; title=&quot;APIs and developer products&quot;&gt;integrating with Google Apps&lt;/a&gt;, and be an advocate for developers and partners inside the company.&lt;br /&gt;&lt;br /&gt;Don already wrote about his &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dondodge.typepad.com/the_next_big_thing/2009/11/thanks-microsoft-hello-google.html&quot; id=&quot;x.:8&quot; title=&quot;first day on the job&quot;&gt;first day on the job&lt;/a&gt; at Google. Tomorrow you can hear him speak on the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.interop.com/newyork/event-highlights/keynotes.php#thurs&quot; id=&quot;hr3q&quot; title=&quot;Enterprise Cloud Summit Panel&quot;&gt;Enterprise Cloud Summit Panel&lt;/a&gt; in New York City. You can follow Don on his &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://dondodge.typepad.com/the_next_big_thing/&quot; id=&quot;dses&quot; title=&quot;personal blog&quot;&gt;personal blog&lt;/a&gt;, email him at dondodge at google.com, or follow &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/dondodge&quot; id=&quot;llsa&quot; title=&quot;@dondodge&quot;&gt;@dondodge&lt;/a&gt; on Twitter.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Michael Winton, Google Developer Relations&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-5282850515995690850?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=mJkZA6Q7Hcs:LcXrCzlsChE:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=mJkZA6Q7Hcs:LcXrCzlsChE:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=mJkZA6Q7Hcs:LcXrCzlsChE:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/mJkZA6Q7Hcs&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-5282850515995690850</guid>
         <pubDate>Wed, 18 Nov 2009 02:38:00 -0800</pubDate>
      </item>
      <item>
         <title>Go: A New Programming Language</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/y2S8feofpjE/go-new-programming-language.html</link>
         <description>Have you heard about Go? We released a new, experimental systems programming language today. It is open source and we're excited about sharing it with the development community. For more information, check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://google-opensource.blogspot.com/2009/11/hey-ho-lets-go.html&quot;&gt;Google Open Source blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Robert Griesemer, Rob Pike, Ken Thompson, Ian Taylor, Russ Cox, Jini Kim and Adam Langley - The Go Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-1859951683125381709?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=y2S8feofpjE:gOOf3YkSLaU:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=y2S8feofpjE:gOOf3YkSLaU:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=y2S8feofpjE:gOOf3YkSLaU:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/y2S8feofpjE&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-1859951683125381709</guid>
         <pubDate>Tue, 10 Nov 2009 07:40:00 -0800</pubDate>
      </item>
      <item>
         <title>Use compression to make the web faster</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/sTz5JoUTCyw/use-compression-to-make-web-faster.html</link>
         <description>Every day, more than 99 human years are wasted because of &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/File_compression&quot; id=&quot;mb4g&quot; title=&quot;uncompressed content&quot;&gt;uncompressed content&lt;/a&gt;. Although support for compression is a standard feature of all modern browsers, there are still many cases in which users of these browsers do not receive compressed content. This wastes bandwidth and slows down users' interactions with web pages.&lt;br /&gt;&lt;br /&gt;Uncompressed content hurts all users. For bandwidth-constrained users, it takes longer just to transfer the additional bits. For broadband connections, even though the bits are transferred quickly, it takes several round trips between client and server before the two can communicate at the highest possible speed.&amp;nbsp; For these users the number of round trips is the larger factor in determining the time required to load a web page. Even for well-connected users these round trips often take tens of milliseconds and sometimes well over one hundred milliseconds.&lt;br /&gt;&lt;br /&gt;In Steve Souders' book&amp;nbsp;&lt;i&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.stevesouders.com/blog/2009/04/23/even-faster-web-sites/&quot; id=&quot;mwy1&quot; title=&quot;Even Faster Web Sites&quot;&gt;Even Faster Web Sites&lt;/a&gt;&lt;/i&gt;, Tony Gentilcore presents data showing the page load time increase with compression disabled.&amp;nbsp; We've reproduced the results for three highest ranked sites from the Alexa top 100 with permission here:&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTLbNKnhlI/AAAAAAAAC10/SEAqXE4YcDY/s1600-h/compresssion1.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:500px;height:110px;border:0;&quot; src=&quot;http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTLbNKnhlI/AAAAAAAAC10/SEAqXE4YcDY/s400/compresssion1.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5401165521375168082&quot;/&gt;&lt;/a&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;font size=&quot;1&quot;&gt;Data, with permission, from Steve Souders, &quot;Chapter 9: Going Beyond Gzipping,&quot; in &lt;i&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.stevesouders.com/blog/2009/04/23/even-faster-web-sites/&quot; id=&quot;s7eq&quot; title=&quot;Even Faster Web Sites&quot;&gt;Even Faster Web Sites&lt;/a&gt; &lt;/i&gt;(Sebastapol, CA: O'Reilly, 2009), 122.&lt;/font&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The data from Google's web search logs show that the average page load time for users getting uncompressed content is 25% higher compared to the time for users getting compressed content. In a randomized experiment where we forced compression for some users who would otherwise not get compressed content, we measured a latency improvement of 300ms.&amp;nbsp; While this experiment did not capture the full difference, that is probably because users getting forced compression have older computers and older software.&lt;br /&gt;&lt;br /&gt;We have found that there are 4 major reasons why users do not get compressed content: anti-virus software, browser bugs, web proxies, and misconfigured web servers.&amp;nbsp; The first three modify the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/HTTP_request#Request_message&quot; id=&quot;i83q&quot; title=&quot;web request&quot;&gt;web request&lt;/a&gt; so that the web server does not know that the browser can uncompress content. Specifically, they remove or mangle the Accept-Encoding header that is normally sent with every request.&lt;br /&gt;&lt;br /&gt;Anti-virus software may try to minimize CPU operations by intercepting and altering requests so that web servers send back uncompressed content.&amp;nbsp; But if the CPU is not the bottleneck, the software is not doing users any favors.&amp;nbsp; Some popular antivirus programs interfere with compression.&amp;nbsp; Users can check if their anti-virus software is interfering with compression by visiting the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; title=&quot;browser compression test page&quot; target=&quot;_blank&quot; href=&quot;http://www.browserscope.org/network/test?test_key=gzip&quot; id=&quot;dbh7&quot;&gt;browser compression test page&lt;/a&gt; at Browserscope.org.&lt;br /&gt;&lt;br /&gt;By default, Internet Explorer 6 downgrades to HTTP/1.0 when behind a proxy, and as a result does not send the Accept-Encoding request header. The table below, generated from Google's web search logs, shows that IE 6 represents 36% of all search results that are sent without compression.&amp;nbsp; This number is far higher than the percentage of people using IE 6.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTL2BJf_QI/AAAAAAAAC18/hxbW9EVp-8o/s1600-h/compression2.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:200px;border:0;&quot; src=&quot;http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTL2BJf_QI/AAAAAAAAC18/hxbW9EVp-8o/s400/compression2.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5401165982005722370&quot;/&gt;&lt;/a&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;i&gt;&lt;font size=&quot;1&quot;&gt;Data from Google Web Search Logs&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;There are a handful of ISPs, &amp;nbsp;where the percentage of uncompressed content is over 95%.&amp;nbsp; One likely hypothesis is that either an ISP or a corporate proxy removes or mangles the Accept-Encoding header.&amp;nbsp; As with anti-virus software, a user who suspects an ISP is interfering with compression should visit the &lt;a rel=&quot;nofollow&quot; title=&quot;browser compression test page&quot; target=&quot;_blank&quot; href=&quot;http://www.browserscope.org/network/tests/gzip&quot; id=&quot;ecuz&quot;&gt;browser compression test page&lt;/a&gt; at Browserscope.org.&lt;br /&gt;&lt;br /&gt;Finally, in many cases, users are not getting compressed content because the websites they visit are not compressing their content.&amp;nbsp; The following table shows a few popular websites that do not compress all of their content. If these websites were to compress their content, they could decrease the page load times by hundreds of milliseconds for the average user, and even more for users on modem connections.&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://3.bp.blogspot.com/_EuCTzLdp3vE/SvTMrfWT0fI/AAAAAAAAC2E/oeqUJl1Ts0A/s1600-h/compression3.png&quot;&gt;&lt;img style=&quot;display:block;margin:0px auto 10px;text-align:center;cursor:pointer;cursor:hand;width:400px;height:66px;border:0;&quot; src=&quot;http://3.bp.blogspot.com/_EuCTzLdp3vE/SvTMrfWT0fI/AAAAAAAAC2E/oeqUJl1Ts0A/s400/compression3.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5401166900645581298&quot;/&gt;&lt;/a&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;i&gt;Data generated using &lt;a rel=&quot;nofollow&quot; title=&quot;PageSpeed&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/speed/page-speed/&quot; id=&quot;krpp&quot;&gt;Page Speed&lt;/a&gt;&lt;/font&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;To reduce uncompressed content, we all need to work together.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Corporate IT departments and individual users can upgrade their browsers, especially if they are using IE 6 with a proxy. Using the latest version of&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.mozilla.com/en-US/firefox/upgrade.html&quot; id=&quot;uwkg&quot; title=&quot;Firefox&quot;&gt;Firefox&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://ie8.msn.com/&quot; title=&quot;MSIE&quot;&gt;Internet Explorer&lt;/a&gt;,&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.opera.com/&quot; id=&quot;m-d9&quot; title=&quot;Opera&quot;&gt;Opera&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.apple.com/safari/&quot; id=&quot;pg0m&quot; title=&quot;Safari&quot;&gt;Safari&lt;/a&gt;, or &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/chrome&quot; title=&quot;Chrome&quot;&gt;Google Chrome&lt;/a&gt; will increase the chances of getting compressed content. &amp;nbsp;A recent editorial in &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.spectrum.ieee.org/telecom/internet/we-come-to-bury-ie6&quot; id=&quot;a7oz&quot; title=&quot;IEEE&quot;&gt;IEEE Spectrum&lt;/a&gt;&amp;nbsp;lists additional reasons - besides compression - for upgrading from IE6.&lt;/li&gt;&lt;li&gt;Anti-virus software vendors can start handling compression properly and would need to stop removing or mangling the Accept-Encoding header in upcoming releases of their software.&lt;/li&gt;&lt;li&gt;ISPs that use an HTTP proxy which strips or mangles the Accept-Encoding header can upgrade, reconfigure or install a better proxy which doesn't prevent their users from getting compressed content.&lt;/li&gt;&lt;li&gt;Webmasters can use &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/speed/page-speed/&quot; id=&quot;ydqr&quot; title=&quot;PageSpeed&quot;&gt;Page Speed&lt;/a&gt; (or other similar tools) to check that the content of their pages is compressed.&lt;/li&gt;&lt;/ul&gt;For more articles on speeding up the web, check out &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/speed/articles/&quot;&gt;http://code.google.com/speed/articles/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Arvind Jain, Engineering Director and Jason Glasgow, Staff Software Engineer&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-3637099642721036094?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=sTz5JoUTCyw:mVnZnJEAkm0:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=sTz5JoUTCyw:mVnZnJEAkm0:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=sTz5JoUTCyw:mVnZnJEAkm0:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/sTz5JoUTCyw&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-3637099642721036094</guid>
         <pubDate>Mon, 09 Nov 2009 04:00:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvTLbNKnhlI/AAAAAAAAC10/SEAqXE4YcDY/s72-c/compresssion1.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>Introducing Closure Tools</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/hknf8RP9JBQ/introducing-closure-tools.html</link>
         <description>&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s1600-h/closure.png&quot;&gt;&lt;img style=&quot;float:left;margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:72px;height:72px;border:0;&quot; src=&quot;http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s200/closure.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5400432335439902754&quot;/&gt;&lt;/a&gt;Millions of Google users worldwide use JavaScript-intensive applications such as &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://mail.google.com/&quot; id=&quot;nlv9&quot; title=&quot;Gmail&quot;&gt;Gmail&lt;/a&gt;, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://docs.google.com/&quot; id=&quot;zq_3&quot; title=&quot;Google Docs&quot;&gt;Google Docs&lt;/a&gt;, and &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://maps.google.com/&quot; id=&quot;lh23&quot; title=&quot;Google Maps&quot;&gt;Google Maps&lt;/a&gt;. Like developers everywhere, Googlers want great web apps to be easier to create, so we've built many tools to help us develop these (and many other) apps. We're happy to announce the open sourcing of these tools, and proud to make them available to the web development community.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Compiler&lt;/b&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/closure/compiler&quot; title=&quot;Closure Compiler&quot;&gt;Closure Compiler&lt;/a&gt; is a JavaScript optimizer that compiles web apps down into compact, high-performance JavaScript code. The compiler removes dead code, then rewrites and minimizes what's left so that it will run fast on browsers' JavaScript engines. The compiler also checks syntax, variable references, and types, and warns about other common JavaScript pitfalls. These checks and optimizations help you write apps that are less buggy and easier to maintain. You can use the compiler with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/closure/compiler/docs/inspector.html&quot; title=&quot;Closure Inspector&quot;&gt;Closure Inspector&lt;/a&gt;, a Firebug extension that makes debugging the obfuscated code almost as easy as debugging the human-readable source. &lt;br /&gt;&lt;br /&gt;Because JavaScript developers are a diverse bunch, we've set up a number of ways to run the Closure Compiler. We've open-sourced a&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/p/closure-compiler/downloads/list&quot; title=&quot;command-line tool&quot;&gt;command-line tool&lt;/a&gt;. We've created a&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://closure-compiler.appspot.com/&quot; title=&quot;web application&quot;&gt;web application&lt;/a&gt;&amp;nbsp;that accepts your code for compilation through a text box or a RESTful API. We are also offering a Firefox extension that you can use with &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/speed/page-speed/download.html&quot; title=&quot;Page Speed&quot;&gt;Page Speed&lt;/a&gt; to conveniently see the performance benefits for your web pages.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Library&lt;/b&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/closure/library&quot; id=&quot;qnzg&quot; title=&quot;Closure Library&quot;&gt;Closure Library&lt;/a&gt;&amp;nbsp;is a broad, well-tested, modular, and cross-browser JavaScript library. Web developers can pull just what they need from a wide set of reusable UI widgets and controls, as well as lower-level utilities for the DOM, server communication, animation, data structures, unit testing, rich-text editing, and much, much more. (Seriously. Check&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://closure-library.googlecode.com/svn/trunk/closure/goog/docs/index.html&quot; id=&quot;q11v&quot; title=&quot;the docs&quot;&gt;the docs&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;JavaScript lacks a standard class library like the&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Standard_Template_Library&quot; id=&quot;novt&quot; title=&quot;STL&quot;&gt;STL&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://en.wikipedia.org/wiki/Java_Development_Kit&quot; id=&quot;lrab&quot; title=&quot;JDK&quot;&gt;JDK&lt;/a&gt;. At Google, Closure Library serves as our &quot;standard JavaScript library&quot; for creating large, complex web applications. It's purposely server-agnostic and intended for use with the Closure Compiler. You can make your project big and complex (with namespacing and type checking), yet small and fast over the wire (with compilation). The Closure Library provides clean utilities for common tasks so that you spend your time writing your app rather than writing utilities and browser abstractions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Templates&lt;/b&gt; &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/closure/templates&quot; id=&quot;j_2h&quot; title=&quot;Closure Templates&quot;&gt;Closure Templates&lt;/a&gt;&amp;nbsp;grew out of a desire for web templates that are precompiled to efficient JavaScript. &amp;nbsp;Closure Templates have a simple syntax that is natural for programmers. &amp;nbsp;Unlike traditional templating systems, you can think of Closure Templates as small components that you compose to form your user interface, instead of having to create one big template per page.&lt;br /&gt;&lt;br /&gt;Closure Templates are implemented for both JavaScript and Java, so you can use the same templates both on the server and client side.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Closure Compiler, Closure Library, Closure Templates, and Closure Inspector all started as &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googleblog.blogspot.com/2006/05/googles-20-percent-time-in-action.html&quot; id=&quot;ghae&quot; title=&quot;20% projects&quot;&gt;20% projects&lt;/a&gt;&amp;nbsp;and hundreds of Googlers have contributed thousands of patches. Today, each Closure Tool has grown to be a key part of the JavaScript infrastructure behind web apps at Google. &amp;nbsp;That's why we're particularly excited (and humbled) to open source them to encourage and support web development outside Google. We want to hear what you think, but more importantly, we want to see what you make. So have at it and have fun!&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By the Closure Tools team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-3771887164161872998?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=hknf8RP9JBQ:rf9_bL6k3j8:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=hknf8RP9JBQ:rf9_bL6k3j8:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=hknf8RP9JBQ:rf9_bL6k3j8:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/hknf8RP9JBQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-3771887164161872998</guid>
         <pubDate>Thu, 05 Nov 2009 02:30:00 -0800</pubDate>
         <media:thumbnail width="72" url="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s72-c/closure.png" height="72" xmlns:media="http://search.yahoo.com/mrss/"/>
      </item>
      <item>
         <title>New personalization features in Google Friend Connect</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/vuwrCaSZlIs/new-personalization-features-in-google.html</link>
         <description>Today, we're excited to announce several new features for &lt;a rel=&quot;nofollow&quot; id=&quot;fuwf&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/friendconnect&quot; title=&quot;Google Friend Connect&quot;&gt;Google Friend Connect&lt;/a&gt; that make it possible for website owners to get to know their users, encourage users to get to know each other, and match their site content (including Google ads) to visitors' interests. Check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://googlesocialweb.blogspot.com/2009/11/google-friend-connect-now-more.html&quot;&gt;Google Social Web Blog&lt;/a&gt; for an overview of these new features.&lt;br /&gt;&lt;br /&gt;We also want to point out that there are APIs for developers who want to play with the interests data programmatically. With the new interest data described on the Social Web Blog, developers can write custom polls and access the interests data directly.&amp;nbsp;&lt;a rel=&quot;nofollow&quot; id=&quot;hqnx&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/friendconnect/interests.html&quot; title=&quot;Friend Connect provides API level access&quot;&gt;Friend Connect provides API level access&lt;/a&gt; to both individual interests information as well as aggregate information for all users of a site. Interests information can be added programmatically for the signed-in user or via the poll gadget, and it can be accessed via both the &lt;a rel=&quot;nofollow&quot; id=&quot;ehrf&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/friendconnect/opensocial_and_gfc.html#profile&quot; title=&quot;JavaScript API&quot;&gt;JavaScript API&lt;/a&gt; and the &lt;a rel=&quot;nofollow&quot; id=&quot;ndw4&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/friendconnect/opensocial_rest_rpc.html#endpoints&quot; title=&quot;OpenSocial REST API&quot;&gt;OpenSocial REST API&lt;/a&gt;. The &lt;a rel=&quot;nofollow&quot; id=&quot;olt1&quot; target=&quot;_blank&quot; href=&quot;http://www.ossamples.com/guitar-universe/&quot; title=&quot;Guitar Universe example site&quot;&gt;Guitar Universe example site&lt;/a&gt; should give you an idea of some of the things that are possible with this new launch.&lt;br /&gt;&lt;br /&gt;As always, feel free to ask technical questions related to the Friend Connect APIs in the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://groups.google.com/group/google-friend-connect-developers?pli=1&quot;&gt;developer forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Mussie Shore, Product Manager, Google Friend Connect&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-1864423490001668537?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=vuwrCaSZlIs:F2dR8AZIIVs:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=vuwrCaSZlIs:F2dR8AZIIVs:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=vuwrCaSZlIs:F2dR8AZIIVs:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/vuwrCaSZlIs&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-1864423490001668537</guid>
         <pubDate>Wed, 04 Nov 2009 00:50:00 -0800</pubDate>
      </item>
      <item>
         <title>OAuth Enhancements</title>
         <link>http://feedproxy.google.com/~r/blogspot/Dcni/~3/NQjGGa1nZ10/oauth-enhancements.html</link>
         <description>Google has recently added three important enhancements to our OAuth support:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The ability to use OAuth without registration&lt;br&gt;&lt;/li&gt;&lt;li&gt;Support for software apps installed on a computer or mobile phone&lt;/li&gt;&lt;li&gt;Additional controls for our Google Apps Premier and Education customers which allows administrators to give another web application access to a subset of the data Google stores for that organization&lt;/li&gt;&lt;/ol&gt;Below is an overview of each enhancement, or you can refer to our updated&amp;nbsp;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/accounts/docs/OAuth.html&quot; id=&quot;wzth&quot; title=&quot;OAuth documentation&quot;&gt;OAuth documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. The ability to use OAuth without registration&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Based on consistent feedback from our developers, we added the ability to use OAuth without having to register the website ahead of time. This change is especially helpful for developers working on test servers that cannot be accessed directly from the Internet.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;2. Support for software apps installed on a computer or mobile phone&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Many of the larger enterprises that use the &lt;a rel=&quot;nofollow&quot; id=&quot;uryv&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/a&quot; title=&quot;Google Apps&quot;&gt;Google Apps&lt;/a&gt; service choose to run their own login system. They accomplish this by leveraging our support for the &lt;a rel=&quot;nofollow&quot; id=&quot;kzow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/apps/sso/saml_reference_implementation.html&quot; title=&quot;SAML protocol&quot;&gt;SAML protocol&lt;/a&gt; which defines a way for Google to redirect the user to the company's login system to be authenticated before accessing their mailbox at Google. &amp;nbsp;However, in this situation Google normally does not have a password for the user — especially if the enterprise authenticates the user with a password and with a second factor of authentication (such as a token generator they carry on a keychain). Unfortunately, there are many installed software applications created by both Google and ISV developers that use Google's APIs, and those applications are hardcoded to ask a user for their email and password using Google's ClientLogin API. With this new OAuth feature, the software application can now launch a web browser and start a process that both logs the user in through their central SAML login system, and that also gets the user's consent to access their data hosted at Google. Because the user authentication is done in the web browser, it will work with the enterprise's existing login system. &amp;nbsp;Google is encouraging any ISV that uses the ClientLogin API to add support for this new OAuth flow, enabling usage by the large enterprise customers described above. Google is also planning to enhance our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;https://tools.google.com/dlpage/gappssync&quot; id=&quot;ddpv&quot; title=&quot;Google Apps Sync&quot;&gt;Google Apps Sync&lt;/a&gt; for Microsoft Outlook to support this feature such that Outlook can be used with both Google Apps and an enterprise's central login system.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;3. Additional controls for our Google Apps Premier and Education customers which allows administrators to give another web application access to a subset of the data Google stores for that organization&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This feature for our Google Apps Premier customers enhances our existing &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://code.google.com/apis/accounts/docs/OAuth.html#GoogleAppsOAuth&quot; id=&quot;kp3:&quot; title=&quot;OAuth for Google Apps domain administrators&quot;&gt;OAuth for Google Apps domain administrators&lt;/a&gt;, also known as 2-legged OAuth. This feature enables domain administrators to allow specific IT apps or third party web services limited access to user accounts via a centralized permissions system under the control of the&amp;nbsp; domain administrator. For example, with this new system, an administrator can use the Google Documents API to configure every user in the domain to have a Google Docs folder named &quot;Human Resources&quot; that is automatically populated with common employee forms. &amp;nbsp;The company might also sign up with an Enterprise SaaS vendor such as &lt;a rel=&quot;nofollow&quot; id=&quot;ewj:&quot; target=&quot;_blank&quot; href=&quot;http://www.manymoon.com&quot; title=&quot;Manymoon&quot;&gt;Manymoon&lt;/a&gt; and specify that Manymoon can access the Google Calendars of all of their users, providing tighter integration with Manymoon's project scheduling features. Previously, this feature required giving the third party vendor access to all of the data that Google stored for that organization, but with this new feature, administrators can limit access to particular data sources (Calendar, Documents, etc). Refer to our &lt;a rel=&quot;nofollow&quot; id=&quot;e2vr&quot; target=&quot;_blank&quot; href=&quot;http://www.google.com/support/a/bin/answer.py?hl=en&amp;amp;answer=61017&quot; title=&quot;documentation&quot;&gt;documentation&lt;/a&gt; for more information.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot; class=&quot;byline-author&quot;&gt;By Eric Sachs, Product Manager, Google Security&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11300808-6665355092803757245?l=googlecode.blogspot.com' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=NQjGGa1nZ10:f-buJJkTpfI:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?a=NQjGGa1nZ10:f-buJJkTpfI:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/blogspot/Dcni?i=NQjGGa1nZ10:f-buJJkTpfI:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/blogspot/Dcni/~4/NQjGGa1nZ10&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Mike Marchak</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-11300808.post-6665355092803757245</guid>
         <pubDate>Tue, 03 Nov 2009 01:05:00 -0800</pubDate>
      </item>
      <item>
         <title>&lt;h1&gt;OpenSocial Blog&lt;/h1&gt;</title>
         <guid isPermaLink="false">yle0FKi13RGFUX6_pQt1Yg_d41d8cd98f00b204e9800998ecf8427e</guid>
      </item>
      <item>
         <title>Announcing the Worldwide Ning Appathon Competition</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/fJ5SDk9SPo4/announcing-worldwide-ning-appathon.html</link>
         <description>Let the games begin! At last night's Ning Appathon kickoff event at the Ning offices in Palo Alto, Ning started a week-long worldwide app development competition for the recently launched &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.ning.com/ningapps&quot;&gt;Ning Apps&lt;/a&gt; platform.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WHAT:&lt;/strong&gt; The Ning Appathon is a week-long OpenSocial development competition with prizes for both original and ported applications. Judges include Ning Chairman and Co-founder &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.pmarca.com/&quot;&gt;Marc Andreessen&lt;/a&gt;, &lt;em&gt;Wired&lt;/em&gt; magazine Editor-in-Chief &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.diydrones.com/&quot;&gt;Chris Anderson&lt;/a&gt; and Managing Director of &lt;em&gt;building43&lt;/em&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://scobleizer.com/&quot;&gt;Robert Scoble&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WHERE:&lt;/strong&gt; The competition is open to participants worldwide. Visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.ning.com/&quot;&gt;Ning Developer Network&lt;/a&gt; for details and Ning Apps documentation.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WHEN: &lt;/strong&gt;The competition began at our kickoff event on November 5th. &lt;strong&gt;All entries must be submitted via &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.ning.com/appathon&quot;&gt;http://developer.ning.com/appathon&lt;/a&gt; by 10 p.m. Pacific on Thursday, November 12th.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;PRIZES:&lt;/strong&gt; The Grand Prize for Best Original App is $5,000 (US). The Grand Prize for Best Ported App is $4,000 (US). Two Original App and Ported App finalists (four total) will each receive $500 (US). All six winners will also receive prominent editorial placement in the Ning Apps directory.&lt;br /&gt;&lt;br /&gt;Please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.ning.com/&quot;&gt;Ning Developer Network&lt;/a&gt; for more information. Good luck!&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Kyle Ford, Director of Partner Design &amp;amp; Development, Ning&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-4096054624152343262?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=fJ5SDk9SPo4:dHXTogw-c8E:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=fJ5SDk9SPo4:dHXTogw-c8E:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=fJ5SDk9SPo4:dHXTogw-c8E:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/fJ5SDk9SPo4&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Lane LiaBraaten</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-4096054624152343262</guid>
         <pubDate>Fri, 06 Nov 2009 00:28:00 -0800</pubDate>
      </item>
      <item>
         <title>Come Join Us at the Ning Appathon!</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/fRlt2mZM6wQ/come-join-us-at-ning-appathon.html</link>
         <description>&lt;div&gt;To continue the momentum from our recent Ning Apps launch -- our Apps program based on OpenSocial -- we're excited to announce that we'll be holding a special developer event called the Ning Appathon at our offices in Palo Alto, CA on Thursday, November 5th from 6pm-10pm.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The event will include:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;An overview of Ning Apps and our OpenSocial implementation&lt;/li&gt;&lt;li&gt;Presentations from existing Ning Apps developers&lt;/li&gt;&lt;li&gt;A chance to meet members of the Ning Engineering and Developer Advocacy teams&lt;/li&gt;&lt;li&gt;Free pizza and beer :)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Most importantly, we'll be announcing the start of a week-long app development competition which will include awards for new applications in addition to ported applications. Prizes and details will be revealed at the event.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;All attendees will receive a complimentary Ning hoodie, so be sure to tell us your shirt size when RSVPing. You can attend solo or bring one colleague, we only ask that you RSVP by 9pm PST on Thursday, October 29th through our website, &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.ning.com/appathon&quot;&gt;http://developer.ning.com/appathon&lt;/a&gt;. All attendees must be at least 21 years of age.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks!&lt;/div&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Ernie Hsiung, Lead Developer Evangelist, Ning&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-2378103129577613208?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=fRlt2mZM6wQ:fP4P6cQJL_k:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=fRlt2mZM6wQ:fP4P6cQJL_k:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=fRlt2mZM6wQ:fP4P6cQJL_k:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/fRlt2mZM6wQ&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Lane LiaBraaten</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-2378103129577613208</guid>
         <pubDate>Wed, 21 Oct 2009 08:40:00 -0700</pubDate>
      </item>
      <item>
         <title>Write a Gadget, Win $5000!</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/oleMyDTzb2M/write-gadget-win-5000.html</link>
         <description>Mark Halvorson from Atlassian Software here! You may have read my blog post a while back about &lt;a rel=&quot;nofollow&quot; title=&quot;Why Enterprise Software Provider Atlassian&quot; target=&quot;_blank&quot; href=&quot;http://blog.opensocial.org/2009/06/why-enterprise-software-provider.html&quot; id=&quot;kjf9&quot;&gt;Why Enterprise Software Provider Atlassian chose OpenSocial Atlassian&lt;/a&gt;. We've been working hard over the past year adding an OpenSocial container based on Shindig into JIRA 4.&amp;nbsp; I'm writing today because we've got some cool news for all you gadget developers out there.&lt;br /&gt;&lt;br /&gt;But before I mention that, I wanted to give you a heads up about Atlassian. We build affordable, lightweight software that helps enterprises collaborate better. Our products include Confluence, recognized as the most widely-used enterprise wiki, and JIRA, one of the world's most popular issue trackers for IT project management. We also make a bunch of developer tools to help you write great code. &lt;a rel=&quot;nofollow&quot; title=&quot;Check us out&quot; target=&quot;_blank&quot; href=&quot;http://www.atlassian.com/&quot; id=&quot;k_-r&quot;&gt;Check us out&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;We're excited to announce &lt;a rel=&quot;nofollow&quot; title=&quot;Atlassian Codegeist IV&quot; target=&quot;_blank&quot; href=&quot;http://confluence.atlassian.com/display/CODEGEIST/&quot; id=&quot;ipd8&quot;&gt;Atlassian Codegeist IV&lt;/a&gt;, our fourth annual plugin competition. We're giving away over $50,000 in prizes for the coolest, most useful, most elegant plugin or integration for any of Atlassian's products. There are six prizes, each worth $5,000 in cash, and thousands&lt;br /&gt;more in software, conference tickets, and even a new MacBook!&lt;br /&gt;&lt;br /&gt;But the interesting thing for the OpenSocial community is that because JIRA 4 is now an OpenSocial Container, &lt;span style=&quot;background-color:rgb(255, 255, 255);&quot;&gt;and&lt;/span&gt; gadgets are now a big part of our plugin competition! To jumpstart our gadget development, we're sponsoring a category for best OpenSocial gadget inside JIRA. In JIRA 4, we're focusing on the gadgets part of the spec, with more Social features to come in our next release. OpenSocial is a brand new technology for our community, so the field is wide open.&lt;br /&gt;&lt;br /&gt;We've also got a first- and second-place Best Plugin prizes, and three other specific categories for different types of plugins (each still worth $5,000). There's something here for everyone, including opportunities beyond traditional Java development. &lt;br /&gt;&lt;br /&gt;This year we will even be announcing the winners live on October 21 at &lt;a rel=&quot;nofollow&quot; title=&quot;AtlasCamp&quot; target=&quot;_blank&quot; href=&quot;http://www.atlassian.com/about/events/atlascamp/&quot; id=&quot;gc5u&quot;&gt;AtlasCamp&lt;/a&gt;, our premier developer conference. You need not be present to win, but it sure will be more fun!&lt;br /&gt;&lt;br /&gt;You can use the &lt;a rel=&quot;nofollow&quot; title=&quot;Developer Forums&quot; target=&quot;_blank&quot; href=&quot;http://forums.atlassian.com/index.jspa&quot; id=&quot;pm2n&quot;&gt;Developer Forums&lt;/a&gt; to communicate with your peers, find team-members, ask questions, and publicize your awesome new plugin. The Atlassian Developer Community is strong, and Codegeist is a wonderful chance to collaborate with other developers. &lt;br /&gt;&lt;br /&gt;Check out the &lt;a rel=&quot;nofollow&quot; title=&quot;Codegeist website&quot; target=&quot;_blank&quot; href=&quot;http://www.atlassian.com/codegeist/&quot; id=&quot;ktm8&quot;&gt;Codegeist website&lt;/a&gt; for more information and get started today. &lt;br /&gt;&lt;br /&gt;Thanks, and Happy Coding! &lt;br /&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://www.atlassian.com/&quot; target=&quot;_blank&quot; href=&quot;http://www.atlassian.com/&quot; id=&quot;xhqy&quot;&gt;http://www.atlassian.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Mark Halvorson, Atlassian Software&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-6012182413956855265?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=oleMyDTzb2M:UQ-IK0BUClg:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=oleMyDTzb2M:UQ-IK0BUClg:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=oleMyDTzb2M:UQ-IK0BUClg:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/oleMyDTzb2M&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Chris Schalk, Google Developer Advocate</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-6012182413956855265</guid>
         <pubDate>Wed, 23 Sep 2009 08:55:00 -0700</pubDate>
      </item>
      <item>
         <title>MySpace Full Support of OpenSocial 0.9 REST APIs Now Available</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/Ohng6wLTlDA/myspace-full-support-of-opensocial-09.html</link>
         <description>&lt;div&gt;MySpace is pleased to &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.myspace.com/Community/blogs/devteam/archive/2009/09/21/full-support-of-opensocial-0-9-rest-apis-now-available.aspx&quot;&gt;unleash our full support of OpenSocial 0.9&lt;/a&gt;. MySpace's OpenSocial 0.9 implementation was built on an entirely new framework with three main goals in mind for developers; stability, performance and compliance to the OpenSocial 0.9 specification. These three goals will yield more consistent results, fewer errors, and means that your code should be even more portable to other social networks that support OpenSocial.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While we're labeling this as a BETA, we feel our APIs are in a very solid state and are ready for widespread use. The PHP and C# SDKs have been fully updated to use all of the new 0.9 APIs we have available. The other SDKs are currently being updated for your use and we've started to update the community-supported &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.opensocial.org/index.php?title=Client_Libraries&quot;&gt;SDKs found at opensocial.org&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Documentation for all the APIs can be found here:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_Activities&quot;&gt;Activities&lt;/a&gt; : Provides the event data found in the MySpace Activity Stream.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_Albums&quot;&gt;Albums&lt;/a&gt; : Support for fetching, creating and updating photo albums.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_AppData&quot;&gt;AppData&lt;/a&gt; : A generic key/value store that your app can use to fetch, update and delete data relevant to your app.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_Groups&quot;&gt;Groups&lt;/a&gt; : Provides information on a user's friend categories.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_0.9_MediaItems&quot;&gt;MediaItems&lt;/a&gt; : Photo support, including photo uploads.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_People&quot;&gt;People&lt;/a&gt; : Gives access to a user's profile data, as well as their friends' profile data.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_StatusMood&quot;&gt;StatusMood&lt;/a&gt; : Allows support for updating and fetching a user's status and mood, as well as fetching their friends' status and mood.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.developer.myspace.com/index.php?title=OpenSocial_v0.9_Notifications&quot;&gt;Notifications&lt;/a&gt; : Create app notifications that are displayed in the recipient's mail center.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Chad Russell, MySpace Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-5193848331976311914?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=Ohng6wLTlDA:pR5OKOHuiPo:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=Ohng6wLTlDA:pR5OKOHuiPo:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=Ohng6wLTlDA:pR5OKOHuiPo:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/Ohng6wLTlDA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Lane LiaBraaten</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-5193848331976311914</guid>
         <pubDate>Tue, 22 Sep 2009 02:45:00 -0700</pubDate>
      </item>
      <item>
         <title>Japan's mixi has launched its OpenSocial Container for all users!</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/Bmd5O5-YF_0/japans-mixi-has-launched-its-opensocial.html</link>
         <description>Hello! My name is Yoichiro Tanaka, and I belong to the Platform Team of mixi, Inc. &quot;mixi&quot; is currently the most popular social networking service (SNS) in Japan and has more than 17 million registered users. I am happy to announce that we have released &quot;mixi apps&quot; which is based on OpenSocial to all of our users. As of September 4th, more than 220 apps have already been registered and launched!&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;http://docs.google.com/File?id=dhsg598c_10147kmf47gn_b&quot; height=&quot;356&quot; width=&quot;390&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Background&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;mixi was originally launched in February 2004 as one of the first social networking services in Japan. It lets users create profiles, make friends with other users, post diaries, discuss in communities, share pictures and music with friends, etc.&lt;br /&gt;&lt;br /&gt;mixi apps is a new service which lets social application providers develop applications that use social graphs formed within mixi, and provide these applications to mixi users. To achieve this, we chose OpenSocial as the best solution.&lt;br /&gt;&lt;br /&gt;In order to be ready with a quality set of applications for our public launch, we have been running a beta version of mixi apps for our developers since last December.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Applications&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Since our launch of mixi apps, we are finding some applications that are substantially more popular than others. Here's two of the more popular applications.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;img src=&quot;http://docs.google.com/File?id=dhsg598c_1015gmf6rhcv_b&quot; height=&quot;268&quot; width=&quot;261&quot;/&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The first application is &quot;Kanji test&quot; produced by &lt;a rel=&quot;nofollow&quot; title=&quot;Drecom&quot; target=&quot;_blank&quot; href=&quot;http://www.drecom.co.jp/&quot;&gt;Drecom&lt;/a&gt;. It challenges users, who compete against each other, to write down how to read Kanji characters (also known as to &quot;furiganize&quot;). It also shows the ranking of the number of Kanji sets that the user successfully furiganized. In the relatively short period since it has been available to users, it has skyrocketed in popularity and already has over three hundred thousand users!&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align:center;&quot;&gt;&lt;img style=&quot;width:284px;height:224px;&quot; src=&quot;http://docs.google.com/File?id=dhsg598c_1013jkrk88qk_b&quot;/&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The next application is &quot;Recollect sketch&quot; produced by &lt;a rel=&quot;nofollow&quot; title=&quot;REAL&quot; target=&quot;_blank&quot; href=&quot;http://www.real.co.jp/&quot;&gt;REAL&lt;/a&gt;. Users are given a theme, and are challenged to draw it entirely from memory! What results is usually a very unique and funny image which users can share and enjoy with friends. This application is visually entertaining and social, and it already has about one hundred thousand users.&lt;br /&gt;&lt;br /&gt;The preceding applications are just a sample of the continually growing application directory of mixi apps, which averages several new applications per day!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Supported Features&lt;/b&gt;&lt;ul&gt;&lt;li&gt;OpenSocial 0.8.1 core APIs (People, Activities, Persistence, and Invite).&lt;/li&gt;&lt;li&gt;The gadgets &quot;core&quot; and &quot;feature-Specific&quot; APIs (mostly supported).&lt;/li&gt;&lt;li&gt;Partly supports Albums API in OpenSocial 0.9.&lt;/li&gt;&lt;li&gt;A mixi specific &quot;Community API,&quot; which allows application access to mixi community (or group) information along with its members.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;Upcoming Supported Features&lt;/b&gt;&lt;ul&gt;&lt;li&gt;Sending a notification between users using a requestSendMessage function.&lt;/li&gt;&lt;li&gt;Sending a event of app's life-cycle for developers.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;mixi Ad Program&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;In addition to mixi apps, we have also recently announced the &quot;mixi Ad Program&quot;. This service is one of the business support programs from mixi for developers. If you decide to join this service, ads will be shown within your application, and you will make profits through revenue sharing based on your application's page view. This service has already started from September 3rd, 2009.&lt;br /&gt;&lt;br /&gt;The features of &quot;mixi Ad Program&quot; are the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Registry and usage fee are free!&lt;/li&gt;&lt;li&gt;Both corporate and individual developers can join this program.&lt;/li&gt;&lt;li&gt;Ordering and confirming your reports is easy through a single management page.&lt;/li&gt;&lt;li&gt;Assured profit of a minimum of 0.01 yen per page view.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;More information on this service can be found at:&lt;br /&gt;&lt;br /&gt;&lt;a rel=&quot;nofollow&quot; title=&quot;http://developer.mixi.co.jp/appli/mixi_adprogram/adprogram_info&quot; target=&quot;_blank&quot; href=&quot;http://developer.mixi.co.jp/appli/mixi_adprogram/adprogram_info&quot;&gt;http://developer.mixi.co.jp/ appli/mixi_adprogram/ adprogram_info&lt;/a&gt; (Note: this site is in Japanese)&lt;br /&gt;&lt;br /&gt;We believe this production release of &quot;mixi apps&quot; and overall support of the OpenSocial standards will enable us to easily continue innovating on compelling future social services for our users. In addition, we hope that our business support programs will greatly contribute to developing the market of mixi apps.&lt;br /&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Yoichiro Tanaka, mixi Platform Team.&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-129850383012341908?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=Bmd5O5-YF_0:Zfn0cWc4CY0:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=Bmd5O5-YF_0:Zfn0cWc4CY0:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=Bmd5O5-YF_0:Zfn0cWc4CY0:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/Bmd5O5-YF_0&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Chris Schalk, Google Developer Advocate</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-129850383012341908</guid>
         <pubDate>Thu, 17 Sep 2009 09:39:00 -0700</pubDate>
      </item>
      <item>
         <title>Business of Social Applications</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/mCsPICpm80g/business-of-social-applications.html</link>
         <description>&lt;div&gt;In just over two years, social applications have greatly enhanced the user experience on social networks. The number of app installs among social networks has climbed into the billions, creating an industry with hundreds of millions of dollars in annual revenue. In this series of blog posts we are going to cover a wide range of topics such as business models, characteristics of successful apps, best practices, and metrics/stats.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight:bold;&quot;&gt;Historic Overview&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The industry started out with the introduction of the Facebook Application Platform but has since expanded to many other social networks all over the world thanks to the OpenSocial standard. Social networks that benefited from adoption of OpenSocial include MySpace, orkut, hi5, Yahoo, and more than 20 other social networks. You can visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.opensocial.org/&quot;&gt;OpenSocial&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.opensocial.org/&quot;&gt;wiki&lt;/a&gt;  for technical details, tutorials and samples, and check out the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.opensocial.org/index.php?title=Containers&quot;&gt;Containers &lt;/a&gt;&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://wiki.opensocial.org/index.php?title=Containers&quot;&gt; page&lt;/a&gt; for a comprehensive listing of all the OpenSocial networks along with traffic and demographics data.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In a short period of time, social applications have gone through two distinct phases in terms of feature richness and monetization methods. The first phase was dominated by apps providing simple social interactions such as self-expression or giving gifts. The second phase exhibits increasingly sophisticated characteristics in apps such as game design patterns (levels, points, rankings, etc.) and user generated content.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight:bold;&quot;&gt;Business Models Overview&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The business models of social apps have closely followed the development of social apps. In the first phase, the most revenue was generated from traditional display ads, supplemented by affiliate/referral offers and app installs. This worked well for simple interactive apps with relatively low engagement because users quickly moved on to next thing, be it an ad, a link or another app install. In this phase, less engagement by users in apps kept page view inventory in balance with available ads, resulting in high eCPM and profits for developers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As apps matured in sophistication and richness, users became much more engaged with apps, less inclined to click on ads, links, or another app installs. Higher engagement also generated much higher demand for page view inventory, outweighing the supply from ad networks and therefore reducing eCPM rates. Out of necessity, app developers learned to take advantage of high user engagement by selling virtual goods, and in doing so, creating virtual economy business models that have provided the second boost to the ecosystems of social apps.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned as we explore the business of social apps in upcoming posts on the OpenSocial blog.&lt;/div&gt;&lt;br /&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Shawn Shen, Google Developer Relations&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-4904634527711925508?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=mCsPICpm80g:xajWwtksJwM:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=mCsPICpm80g:xajWwtksJwM:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=mCsPICpm80g:xajWwtksJwM:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/mCsPICpm80g&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Lane LiaBraaten</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-4904634527711925508</guid>
         <pubDate>Tue, 15 Sep 2009 02:03:00 -0700</pubDate>
      </item>
      <item>
         <title>Ning Apps Launch Across 1.5 Million Ning Networks</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/iJTH9QMa_zY/ning-apps-launch-across-15-million-ning.html</link>
         <description>&lt;div&gt;&lt;div&gt;&lt;div&gt;Today we released Ning Apps, or third-party applications based on OpenSocial 0.8, that serve as new, rich features for our 1.5 million+ Ning Networks and 33 million users. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Thanks to OpenSocial and more than 90 Ning App developers, our Ning Network Creators now have an even greater choice over the features and applications they can add to Ning Networks to make them exactly right for a given topic, interest or passion. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you don’t know about Ning, we’re the social platform for the world’s interests and passions online. Through the power of Ning Networks, we bring the context of topics, interests and passions to social networking. We’ve been at work on Ning Apps in a private beta for a few months now and our Network Creators love Ning Apps for three key reasons.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First, with a single click, a Ning Network Creator can now add Ning Apps to expand the functionality of their Ning Network and increase engagement by their members. Most social platforms rely exclusively on members adding applications to their profile pages, but when a Network Creator adds a Ning App, that Ning App is available to all of the members of that Ning Network in a flash. This means that with one action, a Network Creator can make their Ning App available to hundreds, thousands or even millions of people instantaneously. This is a different – and we think better – approach to application distribution. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Second, with the breadth of Ning Apps, the options on Ning Networks are infinite for Network Creators. Here are some examples of how Ning Networks can use Ning Apps to engage their unique audience in a relevant and effective way.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For Artist, Musician or Entertainment Ning Networks&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Sellit&lt;/span&gt; online store to sell merchandise&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Ticketmaster&lt;/span&gt; or LiveNation to sell event tickets&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Qik&lt;/span&gt; to stream mobile video or &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Ustream.tv&lt;/span&gt; to live video chat from a live event &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;For Activist and Non-Profit Ning Networks&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Social Giving&lt;/span&gt; by Pinc to support fundraising efforts&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Marketplace Classifieds&lt;/span&gt; to allow people to post and search local ads for more volunteers and resources&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;BlogTalkRadio&lt;/span&gt; to host live radio shows&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;PollDaddy&lt;/span&gt; to rapidly gauge members level of involvement&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Huddle&lt;/span&gt; to share workspaces and collateral&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Tungle.me&lt;/span&gt; to schedule meetings and mobilize members&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;WordPress&lt;/span&gt; to display blog posts&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;For Sports Fan or Extreme Athlete Ning Networks&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;NewsShare&lt;/span&gt; to share highlights and stories&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-style:italic;&quot;&gt;Emote&lt;/span&gt; to share real time reactions to games and players&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;You can see the Full Ning Apps Directory at &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://about.ning.com/ningapps&quot;&gt;about.ning.com/ningapps&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Third, Ning Apps are completely integrated into Ning Networks by design. Ning Apps support gadgets.skins, allowing them to automatically inherit the visual style of the Ning Network to which they're added. Additionally, each Ning App by default is designed to write to a member's Latest Activity feed, send messages on behalf of the member (via requestSendMessage) and drive distribution using a Ning Network’s default viral sharing options.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you're a developer interested in more info, please check out our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://developer.ning.com&quot;&gt;Ning Developer Network&lt;/a&gt;. If you're a Ning Network Creator, please visit the full &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://about.ning.com/ningapps&quot;&gt;Ning Apps Directory&lt;/a&gt; on your Ning Network to start adding Ning Apps today.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Jay Parikh, Senior Vice President of Product Engineering at Ning&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-7559758521199901718?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=iJTH9QMa_zY:tXXtgfNJnQA:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=iJTH9QMa_zY:tXXtgfNJnQA:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=iJTH9QMa_zY:tXXtgfNJnQA:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/iJTH9QMa_zY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Lane LiaBraaten</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-7559758521199901718</guid>
         <pubDate>Thu, 10 Sep 2009 01:33:00 -0700</pubDate>
      </item>
      <item>
         <title>Check out Cyworld's developer sandbox</title>
         <link>http://feedproxy.google.com/~r/OpensocialApiBlog/~3/oEXlpPoISpA/check-out-cyworlds-developer-sandbox.html</link>
         <description>&lt;div&gt;Annyonghaseyo! This is Kyle Kim from Cyworld with some exciting news!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have recently launched &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://devsquare.nate.com&quot;&gt;Dev.Square&lt;/a&gt; a sandbox environment for Cyworld developers. In celebration of the launch, we had a big announcement conference in Seoul with over 750 people attending (see the photos &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://www.cyworld.com/julyh/2768852&quot;&gt;here&lt;/a&gt;). I'd like to thank everyone who attended the conference as well as those who contacted us after reading our &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://blog.opensocial.org/2009/05/cyworld-plans-to-adopt-opensocial.html&quot;&gt;previous post&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For developers in Korea who are interested in writing applications for Cyworld, we are hosting a workshop on September 4, 2009. Speakers from our partner companies (including Mickey Kim and Chris Schalk from Google) will host sessions on OpenSocial APIs, social gaming, and trends within the social apps industry. For more details on the workshop, please visit the &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://devsquare.nate.com&quot;&gt;Dev.Square website&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The DevSquare website is currently available in Korean and English; Language settings can be changed from the drop-down menu at the bottom of the page. In order to register as a developer, you should first register as a Nate/Cyworld member. We apologize for the cumbersome process, but do not miss this opportunity to access our 24 million Cyworld users / 27 million NateOn (IM) users.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For English comments / questions, please contact Dyne (dynelee@skcomms.co.kr), and for Korean comments / questions, contact devsquare@nate.com.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have also created an &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://twitter.com/open_cyworld&quot;&gt;official Twitter page.&lt;/a&gt; Please follow us for frequent updates.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class=&quot;byline-author&quot;&gt;Posted by Kyle Kim, Cyworld Team&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3767917694929724035-47530922517557302?l=blog.opensocial.org' alt=''/&gt;&lt;/div&gt;&lt;div class=&quot;feedflare&quot;&gt;
&lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=oEXlpPoISpA:TW3BDGk6RmQ:yIl2AUoC8zA&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?d=yIl2AUoC8zA&quot; border=&quot;0&quot;&gt;&lt;/a&gt; &lt;a rel=&quot;nofollow&quot; target=&quot;_blank&quot; href=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?a=oEXlpPoISpA:TW3BDGk6RmQ:V_sGLiPBpWU&quot;&gt;&lt;img src=&quot;http://feeds.feedburner.com/~ff/OpensocialApiBlog?i=oEXlpPoISpA:TW3BDGk6RmQ:V_sGLiPBpWU&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OpensocialApiBlog/~4/oEXlpPoISpA&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;</description>
         <author>Lane LiaBraaten</author>
         <guid isPermaLink="false">tag:blogger.com,1999:blog-3767917694929724035.post-47530922517557302</guid>
         <pubDate>Wed, 02 Sep 2009 01:31:00 -0700</pubDate>
      </item>
   </channel>
</rss>
<!-- fe13.pipes.sp1.yahoo.com uncompressed/chunked Fri Nov 27 10:49:23 PST 2009 -->
