Friday, September 21, 2012

[Gd] Apps Script Hackathon in Los Angeles, CA

| More

Google Apps Developer Blog: Apps Script Hackathon in Los Angeles, CA

Hello Los Angeles! Following on the heels of our hackathon in Austin, Texas, we’ve decided that it’s time to bring the party to the City of Angels in sunny southern California. We’ll be hosting an Apps Script hackathon in our recently opened Los Angeles office on Tuesday, November 13th, 2012 between the hours of 2-8pm Pacific Time. We invite anyone that either uses or wants to learn about Google Apps Script to come and meet the team!

We’ll start off with a quick introduction to Apps Script followed by a short tutorial. At that point, we’ll break off into groups or individual work to either build apps or work through tutorials - both are fine, and you’ll have direct access to the Apps Script team to help you with any questions or ideas. We’ll provide food, drinks, power and wifi - you just bring your laptop, your creativity, and your appetite for code! Check out the detailed Google Sites page, RSVP once you know you can make it, and tell your friends about the event!

Official event page: https://sites.google.com/site/appsscripthackathonlosangeles

Hope to see you there!

- Ikai

Ikai Lan   profile

Ikai is a Developer Programs Engineer working on Google Apps Script. Prior to Apps Script, he worked on Google App Engine. Ikai is an avid technologist, consuming volumes of material about new programming languages, frameworks or services, though more often than not you'll find him advocating pragmatism over dogma in the solutions he proposes. In his free time he enjoys the great outdoors, winning Chinese language karaoke contests and playing flag football. He resides in New York City, where he watches in anguish as his favorite sports teams from the San Francisco Bay Area implode season after season.

URL: http://googleappsdeveloper.blogspot.com/2012/09/apps-script-hackathon-in-los-angeles-ca.html

Thursday, September 20, 2012

[Gd] Dev Channel Update for Chrome OS

| More

Chrome Releases: Dev Channel Update for Chrome OS


The Dev channel has been updated to 23.0.1271.2 (Platform version: 2913.3.0) for Chromebooks (Acer AC700, Samsung Series 5 550, Samsung Series 3, and Cr-48) and Samsung Chromebox Series 3. This build contains a number of UI, functional and stability improvements. 

Highlights of these changes are:
  • Fixed Crash when closing maximized window via Ctrl+W (147635)
  • UI improvements

Known Issues:


  • 34334 - External display gets cropped after resume from sleep
  • 147666 - File Manager downloads "open" button missing. Workaround: Right click to open
If you find new issues, please let us know by visiting our help site or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue’ under the wrench menu.

Ben Henry & Josafat Garcia
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/09/dev-channel-update-for-chrome-os_20.html

    [Gd] Build apps for elections with the Google Civic Information API

    | More

    Google Developers Blog: Build apps for elections with the Google Civic Information API

    Author Photo
    By Chetan Sabnis, Google Politics & Elections Team

    Cross-posted from the Google Politics & Elections Blog

    Google’s mission is to organize the world’s information and make it universally accessible and useful. To make it easier for you to build apps with voting information on the web, we are releasing our new Google Civic Information API. The API enables you to look up comprehensive voting information for an individual U.S. address, including polling place, early vote sites, contests, and local election official contact information. By releasing this API, we hope to unleash the creativity of the Internet and help you build innovative products that push civic information to your communities in interesting ways.

    As you know, this type of information can change frequently as we get closer to Election Day, and we will make every effort to ensure we're returning timely and accurate data. We have also included contact information for local election officials in the API so voters can find the most accurate information.

    While this API only includes voting information for elections in the U.S., we plan to expand to other countries and include other types of civic information. Please join the Google Civic Information API Forum for updates on the data available and check out the Google Politics & Elections page to find more information about the work we are doing around the election and our international elections programs.


    You can get started here through the Google APIs Explorer. The API is available now, but please note that full information isn't yet available for the November 6th General Election. We expect to be able to provide full live data around the middle of October, as it becomes available. For now, we recommend building your applications using the test data we provide. We'll be using the API to power our own election tools over the coming weeks, including an embeddable app anyone can use on their site, and we're looking forward to seeing the applications you come up with!

    The Civic Information API replaces our previous Google Election Center API, which will be turned down after January 1, 2013.

    For questions, comments, and to showcase your apps using the API, we encourage you to use the Google Civic Information API Forum.


    Chetan Sabnis is a software engineer on the Google Politics & Elections team. In his spare time, Chetan enjoys solving logic puzzles and crosswords.

    Posted by Scott Knaster, Editor
    URL: http://googledevelopers.blogspot.com/2012/09/build-apps-for-elections-with-google.html

    [Gd] Dev Channel Update

    | More

    Chrome Releases: Dev Channel Update


    The Dev channel has been updated to 23.0.1271.1 for  Windows, Mac, Linux, and Chrome Frame platforms

    All
    • Updated WebKit - 537.11
    • Fixed simultaneous audio playback is broken (Issue: 150003)
    • Fixed bug with Web Intents and non-sticky defaults (Issue: 148740)
    • Audio may drop out under certain play / pause cycles. (Issue: 150702
    More details about additional changes are available in the svn log of all revision.

    You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.

    If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry

    Karen Grunberg
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/09/dev-channel-update_20.html

    [Gd] Structured Data Testing Tool

    | More

    Official Google Webmaster Central Blog: Structured Data Testing Tool

    Webmaster level: All.

    Today we’re excited to share the launch of a shiny new version of the rich snippet testing tool, now called the structured data testing tool. The major improvements are:

    • We’ve improved how we display rich snippets in the testing tool to better match how they appear in search results.

    • The brand new visual design makes it clearer what structured data we can extract from the page, and how that may be shown in our search results.

    • The tool is now available in languages other than English to help webmasters from around the world build structured-data-enabled websites.

    Here’s what it looks like:

    The new structured data testing tool works with all supported rich snippets and authorship markup, including applications, products, recipes, reviews, and others.

    Try it yourself and, as always, if you have any questions or feedback, please tell us in the Webmaster Help Forum.

    Written by Yong Zhu on behalf of the rich snippets testing tool team
    URL: http://googlewebmastercentral.blogspot.com/2012/09/structured-data-testing-tool-webmaster.html

    Wednesday, September 19, 2012

    [Gd] Announcing Movi.Kanti.Revo, a new Chrome Experiment

    | More

    Google Developers Blog: Announcing Movi.Kanti.Revo, a new Chrome Experiment

    Author PictureBy Pete LePage, Developer Advocate

    Cross-posted with the Chromium Blog

    Earlier this year at Google I/O, we gave developers a sneak peek at Movi.Kanti.Revo, a new sensory Chrome experiment crafted by Cirque du Soleil and developed by Subatomic Systems that brings the magic of Cirque du Soleil to the web through modern web technologies. The full experiment, which allows users to follow a mysterious character through a beautiful world of Cirque du Soleil performances, was launched today at the Big Tent event in New York City.



    The experiment was created using just HTML5, and the environment is built entirely with markup and CSS. Like set pieces on stage, divs, images and other elements are positioned in a 3D space using CSS. To create movement, CSS animations and 3D transforms were applied making the elements appear closer and further away. Everything is positioned and scaled individually to create a highly realistic interactive environment. In addition, the experiment uses HTML5 <audio> to play music and sounds.

    Movi.Kanti.Revo breaks with the tradition of keyboard or mouse navigation; instead users navigate through an interactive Cirque du Soleil world with their gestures. To accomplish this, the experiment asks users for permission to access their web cam using the new getUserMedia API. With this new API, the experiment renders the camera output to a small <video> element on the page. A facial detection JavaScript library then looks for movement and applies a CSS 3D transform to the elements on the page, making environment move with the user.


    Because this experience was built using just markup, it works in the browser across all devices. The experiment takes advantage of the rich capabilities possible on mobile devices, like the accelerometer to navigate through the world.

    To learn more about how this experiment was built, check out the new technical case study or join us for a special Google Developers Live Behind The Divs event on September 20th at 8:30am PDT /15:30 UTC where we’ll be talking to the engineers behind the project.

    Head over to Movi.Kanti.Revo at www.movikantirevo.com to check things out, and be sure to open Chrome’s developer tools to see what’s going on behind the <div>s!


    Pete LePage is a Developer Advocate on the Google Chrome team and works with developers to create great web applications for the Chrome Web Store. He recently helped launch the +Chrome Developers page on Google+.

    Posted by Scott Knaster, Editor
    URL: http://googledevelopers.blogspot.com/2012/09/announcing-movikantirevo-new-chrome.html

    [Gd] Announcing Movi.Kanti.Revo, A New Chrome Experiment

    | More

    Chromium Blog: Announcing Movi.Kanti.Revo, A New Chrome Experiment

    Earlier this year at Google I/O, we gave developers a sneak peek at Movi.Kanti.Revo, a new sensory Chrome experiment crafted by Cirque du Soleil and developed by Subatomic Systems that brings the magic of Cirque du Soleil to the web through modern web technologies. The full experiment, which allows users to follow a mysterious character through a beautiful world of Cirque du Soleil performances, was launched today at the Big Tent event in New York City.



    The experiment was created using just HTML5, and the environment is built entirely with markup and CSS. Like set pieces on stage, divs, images and other elements are positioned in a 3D space using CSS. To create movement, CSS animations and 3D transforms were applied making the elements appear closer and further away. Everything is positioned and scaled individually to create a highly realistic interactive environment. In addition, the experiment uses HTML5 <audio> to play music and sounds.

    Movi.Kanti.Revo breaks with the tradition of keyboard or mouse navigation; instead users navigate through an interactive Cirque du Soleil world with their gestures. To accomplish this, the experiment asks users for permission to access their web cam using the new getUserMedia API. With this new API, the experiment renders the camera output to a small <video> element on the page. A facial detection JavaScript library then looks for movement and applies a CSS 3D transform to the elements on the page, making environment move with the user.


    Because this experience was built using just markup, it works in the browser across all devices. The experiment takes advantage of the rich capabilities possible on mobile devices, like the accelerometer to navigate through the world.

    To learn more about how this experiment was built, check out the new technical case study or join us for a special Google Developers Live Behind The Divs event on September 20th at 8:30am PDT /15:30 UTC where we’ll be talking to the engineers behind the project.

    Head over to Movi.Kanti.Revo at www.movikantirevo.com to check things out, and be sure to open Chrome’s developer tools to see what’s going on behind the <div>s!

    Pete LePage, Developer Advocate
    URL: http://blog.chromium.org/2012/09/announcing-movikantirevo-new-chrome.html

    [Gd] Beta Channel Update

    | More

    Chrome Releases: Beta Channel Update

    The Beta channel has been updated to 22.0.1229.64 for Windows, Mac, and Linux.  A complete log of what changed can be found in the svn revision log.  Instructions and download links for our different release channels are available on the Chromium wiki.  If you find what you think is a new bug, please file it in our issue tracker.

    Jason Kersey
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/09/beta-channel-update_19.html

    [Gd] GWT Survey

    | More

    Google Web Toolkit Blog: GWT Survey

    Vaadin Ltd., as part of the newly-formed GWT Steering Committee, has drafted an online survey for GWT users. The following is a guest blog post from David Booth of Vaadin Ltd.




    The Future of GWT Survey





    This year has brought many changes to GWT, from Super Dev Mode and Elemental to the creation of the GWT Steering Committee (which Vaadin is proud to be a part of).

    As part of the committee, Vaadin would like to learn more about the community that we all serve, so together with Ray Cromwell (Google representative and acting Committee Chair), Artur Signell (Vaadin representative), Mike Brock (RedHat representative), David Chandler (Developer Advocate at Google), Daniel Kurka (mgwt, gwt-phonegap), and Bhaskar Janakiraman (Google), we came up with The Future of GWT survey.  Please help us understand:

    • How should GWT develop?

    • What technologies should it better support?

    • What are best practices within the community?

    • What is your opinion on the future of GWT?



    Information is king - So once we collect all the data from this survey, we’ll work together to build The Future of GWT Report. We’re happy to publicly share all the information we find with you, so that we can all make educated decisions about the future!

    Can you take 10 mins to fill out The Future of GWT survey?

    URL: http://googlewebtoolkit.blogspot.com/2012/09/gwt-survey.html

    [Gd] App Engine 1.7.2 Released

    | More

    Google App Engine Blog: App Engine 1.7.2 Released

    In addition to the usual crop of new features and improvements, the App Engine team spent a week this summer fixing bugs reported through our issue tracker. We fixed or closed out more than 130 bugs. Many of the fixes are included in this release.



    App Admin


    • Paid applications can now upload more than 1GB of code and static files for their applications. Storage above the free quota of 1GB will be billed at $0.13/GB per month.





    Runtimes



    • Java Threads is now a fully supported feature of the Java runtime.





    Task Queue Statistics

    We’ve added the ability to fetch Task Queue Statistics. This allows you to fetch statistics and information about your task queue from within your application. Statistics include information such as the number of tasks in a queue, how many tasks were executed in the last minute and enforced rate.




    App Engine Sockets Trusted Tester Program

    We are looking for trusted testers for outbound socket functionality in App Engine. Please fill out our signup form to tell us more about your use-case if you’re interested.




    Wait! But what about those bug fixes?

    The complete list of features and (a long list of) bug fixes for 1.7.2 can be found in our release notes. For App Engine coding questions and answers check us out on Stack Overflow, and for general discussion and feedback, find us on our Google Group.


    - Posted by the Google App Engine Team
    URL: http://googleappengine.blogspot.com/2012/09/app-engine-172-released.html

    [Gd] Conversation with a Test Engineer

    | More

    Google Testing Blog: Conversation with a Test Engineer

    By Alan Myrvold

    Alan Faulkner is a Google Test Engineer working on DoubleClick Bid Manager, which enables advertising agencies and advertisers to bid on multiple ad exchanges. Bid Manager is the next generation of the Invite Media product, acquired by Google in 2010. Alan Faulkner has been focused on the migration component of Bid Manager, which transitions advertiser information from Invite Media to Bid Manager. He joined Google in August 2011, and works in the Kirkland, WA office.
    Are you a Test Engineer, or a Software Engineer in Test, and what’s the difference?
    Right now, I’m a Test Engineer, but the two roles can be very similar. As a Test Engineer, you’re more focused on the overall quality of the product and speed of releases, while a Software Engineer in Test might focus more on test frameworks, automation, and refactoring code for testability. I think of the difference as more of a shift in focus and not capabilities, since both roles at Google need to be able to write production quality code. Example test engineering tasks I worked on are introducing an automated release process, identifying areas for the team to improve code coverage, and reducing the manual steps needed to validate data correctness.

    What is a typical day for you?
    When I get in, I look at any code reviews I need to respond to, look for any production bugs from technical account managers that are high priority, and then start writing code. In my current role, I focus my development effort on improving the efficiency and coverage of our large scale integration tests and frameworks. I also work on adding additional features to our product that improve our testability. I typically spend anywhere from 50% to 75% of my time either writing code or participating in code reviews.

    Do you write only test code?
    No, I write a lot of code that is included in the product as well. One of the great things about being an SET or TE at Google is that you can write product code as easily as test code. I write both. My test code focuses on improving test frameworks and enabling developers to write integration tests. The production code that I write focuses on increasing the verification of external inputs. I also focus on adding features that improve testability. This pushes more quality features into the product itself rather than relying on test code for correctness.

    What programming languages do you use?
    Both the test and product code are mostly Java. Occasionally I use Python or C++ too.

    How much time to do you spend doing manual testing?
    Right now, with the role I am in, I spend less than 5% of my time doing manual testing. Although some exploratory testing helps develop product knowledge and find risky areas, it doesn’t scale as a repeated process. There are a small amount of manual steps and I focus on ways to help reduce this so our team does not spend our time doing repeated manual steps as part of our data migration.

    Do you write unit tests for code that isn’t yours?
    At Google, the responsibility of testing is shared across all product engineers, not just Test Engineers. Everyone is responsible for writing unit tests as well as integration tests for their components. That being said, I have written unit tests for components that are outside of what I developed but that has been to illustrate how to write a unit test for said component. This component usually involved a abnormally complex set of code or to illustrate using a new mocking framework, such as Mockito.

    What do you like about working on the Google advertising products?
    I like the challenges of the scalability problems we need to solve, from handling massive amounts of data to dealing with lots of real time ad requests that need to be responded to in milliseconds. I also like the impact, since the products affect a lot of people. It’s rewarding to work on stuff like that.

    How is testing at Google different from your experience at other companies?
    I feel the role is more flexible at Google. There are fewer SET’s and TE’s in my group at Google per developer, and you have the flexibility to pick what is most important. For example, I get to write a lot of production code to fix bugs, make the code more testable, and increasing the visibility into errors encountered during our data migrations. Plus, developers at Google spend a lot of time writing tests, so testing isn’t just my responsibility.

    How does the Google Kirkland office differ from the headquarters in Mountain View?
    What I really like about the offices at Google is that each of them has their own local feel and personality. Google encourages this! For instance, the office here in Kirkland has a climbing wall, boats and all the conference rooms in our building are named after local bands in the area. The office in Seattle has kayaks and the New York office has an actual food truck in its cafeteria.

    What’s the future of testing at Google?
    I think the future is really bright. We have a lot of flexibility to make a big impact on quality, testability and improving our release velocity. We need to release new features faster and with good quality. The problems that we face are complex and at an extreme scale. We need engineering teams focused on ensuring that we have efficient ways to simulate and test. There will always be a need for testers and developers that focus on these areas here at Google.

    Interested in test jobs at Google?
    URL: http://googletesting.blogspot.com/2012/09/conversation-with-test-engineer.html

    Tuesday, September 18, 2012

    [Gd] Dev Channel Update

    | More

    Chrome Releases: Dev Channel Update

    The Dev channel has been updated to 23.0.1270.0 for Windows, Mac, Linux, and ChromeFrame platforms

    All

    • Updated V8 - 3.13.7.1
    • Fixed playback of multiple audio streams with Pepper Flash, WebRTC, and WebAudio.
    • Fixed crash when attempting to play audio without a sound card or via remote desktop.
    • Media Galleries Extension API should work on all platforms, though permission format has changed.
    • Chrome will automatically check for captive portals when showing SSL interstitials or when an HTTP server responds to an HTTPS request.

    Windows
    • Now Chrome on Windows 8 uses a single profile regardless if running on desktop or metro mode. A new menu item has been added to switch mode which cause a relaunch.

    More details about additional changes are available in the svn log of all revisions.

    You can find out about getting on the Dev channel here: http://dev.chromium.org/getting-involved/dev-channel.

    If you find new issues, please let us know by filing a bug at http://code.google.com/p/chromium/issues/entry


    Karen Grunberg
    Google Chrome
    URL: http://googlechromereleases.blogspot.com/2012/09/dev-channel-update_18.html

    [Gd] Get social, mobile, and 40+ new data points with the Google Analytics API

    | More

    Google Developers Blog: Get social, mobile, and 40+ new data points with the Google Analytics API

    Nick
    Pete
    By Pete Frisella and Nick Mihailovski, Google Analytics API Team

    Google Analytics Core Reporting APIs enable a powerful and flexible way to analyze, report on, and ultimately optimize such things as web and mobile experiences, conversions, and sales.

    Today we’re adding over 40 new metrics and dimensions that can be queried through the Core Reporting API. This enables developers to create reports that are similar to what is available in the Google Analytics web interface for important areas such as social and mobile. See a full list of additions on the Core Reporting API changelog.


    Here’s a rundown of what’s new and a few helpful questions the data can answer.

    Social Data
    Now you can get data for both on-site interactions with social buttons as well as off-site social data from social data hub partner networks.

    Mobile Devices
    For mobile visits to your site, get all the good stuff like like brand, model, and input type.

    Geo
    We added a new dimension to indicate the Designated Market Area (DMA) where traffic came from.

    Page Path Rollups
    Create your own drill down reports with these new dimensions that allow you to roll-up metrics to hierarchical levels of your property.

    App & Exception Tracking
    If you’re using the Google Analytics SDK for iOS/Android v2 beta, you can now retrieve App View and Exception metrics.

    User Timings
    New ways to report on all things related to user timing data.


    Related Resources:


    Pete Frisella is a Developer Advocate for Google Analytics. He likes to travel and hit the golf course when he can.

    Nick Mihailovski is a Senior Developer Programs Engineer working on the Google Analytics API. In his spare time he likes to travel around the world.

    Posted by Scott Knaster, Editor
    URL: http://googledevelopers.blogspot.com/2012/09/get-social-mobile-and-40-new-data.html

    [Gd] Introducing JavaScript Support for the Drive API

    | More

    Google Apps Developer Blog: Introducing JavaScript Support for the Drive API

    Did you know you can write a complete Google Drive App with JavaScript that runs completely in the web browser? You can! Your browser-based application, including Chrome extensions, can take advantage of our client library, or just use CORS requests to the API.

    Your app can support all the functionality of the Drive API, including uploading files, downloading files, tracking changes, listing files and managing revisions. Also you can take advantage of our user interface components that make opening and sharing files easy.

    We are really keen to offer first-class support to browser-based applications, so we have added JavaScript snippets to all our API reference documentation. Please let us know how we are doing by posting to Stack Overflow.

    Want to try it out? Check out our Javascript Quickstart Guide, which helps you get your application up and running in five minutes or so.

    Ali Afshar profile | twitter

    Tech Lead, Google Drive Developer Relations. As an eternal open source advocate, he contributes to a number of open source applications, and is the author of the PIDA Python IDE. Once an intensive care physician, he has a special interest in all aspects of technology for healthcare

    URL: http://googleappsdeveloper.blogspot.com/2012/09/introducing-javascript-support-for.html

    [Gd] Announcing new pricing for Virtual IP based SSL

    | More

    Google App Engine Blog: Announcing new pricing for Virtual IP based SSL



    We are delighted to make Virtual IP (VIP) based SSL more widely available to developers by announcing a reduction in price. From the 25th of September, VIPs will be $39/month - down from the previous price of $99/month. For those applications already using VIP based SSL, the pricing change will be applied to your bill starting on the 25th. 


    Google App Engine SSL for Custom Domains goes above and beyond the basics of SSL by offering globally distributed SSL endpoints and built-in load balancing. Like App Engine in general, there is no need for ongoing system administration and maintenance. For more details on how to setup SSL for Custom Domains for your applications, see the App Engine documentation.

    - Posted by the Google App Engine Team


    URL: http://googleappengine.blogspot.com/2012/09/announcing-new-pricing-for-virtual-ip.html

    Monday, September 17, 2012

    [Gd] Adding OAuth 2.0 support for IMAP/SMTP and XMPP to enhance auth security

    | More

    Google Developers Blog: Adding OAuth 2.0 support for IMAP/SMTP and XMPP to enhance auth security

    Author PhotoBy Ryan Troll, Application Security Team

    Cross-posted with the Google Online Security Blog

    Our users and developers take password security seriously and so do we. Passwords alone have weaknesses we all know about, so we’re working over the long term to support additional mechanisms to help protect user information. Over a year ago, we announced a recommendation that OAuth 2.0 become the standard authentication mechanism for our APIs so you can make the safest apps using Google platforms. You can use OAuth 2.0 to build clients and websites that securely access account data and work with our advanced security features, such as 2-step verification. But our commitment to OAuth 2.0 is not limited to web APIs. Today we’re going a step further by adding OAuth 2.0 support for IMAP/SMTP and XMPP. Developers using these protocols can now move to OAuth 2.0, and users will experience the benefits of more secure OAuth 2.0 clients.

    When clients use OAuth 2.0, they never ask users for passwords. Users have tighter control over what data clients have access to, and clients never see a user's password, making it much harder for a password to be stolen. If a user has their laptop stolen, or has any reason to believe that a client has been compromised, they can revoke the client’s access without impacting anything else that has access to their data.

    We are also announcing the deprecation of older authentication mechanisms. If you’re using these you should move to the new OAuth 2.0 APIs.
    Our team has been working hard since we announced our support of OAuth in 2008 to make it easy for you to create applications that use more secure mechanisms than passwords to protect user information. Check out the Google Developers Blog for examples, including the OAuth 2.0 Playground and Service Accounts, or see Using OAuth 2.0 to Access Google APIs.


    Ryan Troll has been with Google since 2010, and now works with the Application Security Team, focusing on OAuth and 2-Step Verification. When not at work, he spends time with his family, reads, and occasionally plays poker.

    Posted by Scott Knaster, Editor
    URL: http://googledevelopers.blogspot.com/2012/09/adding-oauth-20-support-for-imapsmtp.html