Many Channels for hi5 Platform Info -- Twitter, IRC, Wiki & More!
| Permalink | Comments (0) | TrackBacks (0)Our team had plenty of work last week helping the platform respond to the tremendous growth we've seen in the recent past. We really appreciate the patience and support of all the developers who are working hard to create applications for our 80 million members globally. If you are one of these developers -- thank you!
We believe we are now in better shape to handle the high load conditions we saw previously (and expect will continue with the ongoing success of our platform). An important learning for us was to maintain multiple communication channels with developers to provide up-to-the-minute updates and other valuable hi5 information, whether through our IRC channel, discussion forum or this blog. More recently, we've also added a Twitter account to our portfolio of communication tools, and a couple rounds of temporary down times have already been twittered (tweeted?) over the last couple of days.
Next week, we'll add yet another way of communicating with us and with each other. Specifically, we will be opening up the wiki on our Developer Center website to enable collaboration. If you have any suggestions for the structure of and navigation between the developer-accessible pages (such as posting sample code, creating feature request pages, interacting with our users to know what apps to build, etc.), please do let us know.
Beyond communication with the developer community, another focus for us has been on setting fair standards for application notifications. Our users expect applications on hi5 to behave according to the high standards we've set for other features of our service, which among other things means that installing applications will not overwhelm their in boxes with irrelevant or misleading information. We've applied over four years of learning into the guidelines we set for creating effective and useful viral channels for our service, and are continually evolving our developer guidelines to inculcate these learnings, while also reacting to the fluid nature of the application landscape. Please check out the latest updates to our guidelines, if you haven't already. We welcome your feedback.
hi5 Co-Sponsoring OpenSocial Week in Buenos Aires – Tech Talks, Hackathon & More
| Permalink | Comments (0) | TrackBacks (0)The complete schedule of each day’s event is located on the OpenSocial API blog here. We look forward to meeting hi5 developers in Argentina face-to-face. Let us know if you’d like to set up some one-to-one meetings to discuss the success of your apps on hi5!
Platform Status -- Performance, Performance, Performance
| Permalink | Comments (0) | TrackBacks (0)As many of you know we've been working around the clock to target and fix performance and stability issues on the platform. A big thanks for everyone's patience and understanding.
I'm happy to say that we've identified the root source of our stability problems. It's related to notifications in the platform. With notifications off in the past 36 hours we have not seen any of the erratic behavior of previous nights. We have code fixes we will deploy on Sunday that will re-enable notifications for most Applications.
So what happened?
The following histogram of http responses tells the tale:

In our analysis we quickly focused our attention to concurrency problems in some portions of our code. We found that Java itself has some serious contention for global Character Set data and Crypto providers. So we spent a lot of time working around these problems. However we'd fix one concurrency problem, and quickly hit another one. This went on for days, we'd think we had the problem solved, then it would come back with a vengeance.
This past friday, the 25th we were dealing with the same issues. We noticed that the poor performance coincided with notification database alerts. At 11:00 we turned off notifications and the entire system was suddenly stable.
With this breathing room we've now had time to finish a project to improve notifications scalability. This code will go out on Sunday, with most applications having notifications functionality by Sunday.
Why Did This Happen?
We underestimated the amount of notifications sent, and the popularity of their use on the site. At first glance this just meant that posting and browsing notifications were slow. We didn't expect that other requests would suffer collateral damage.
Changes Going Forward...
Today we made the following Notifications changes. Our goal is to get Notifications on for all applications while maintaining overall site stability:
- Accepting Notifications Asynchronously
- Applying Notification Retention policy to remove the oldest Notifications from the system (14 day retention)
- Adding Extra Notification Capacity
- Only allowing Notification REST calls with a token generated in the preceding 4 hours.
- Additional privacy controls to insure that the notification is legitimate.
- Conversations with our partners that are using the Notifications Feature the most.
Both Operations and Engineering have been happy to get a few good nights sleep since friday. We look forward to working on new features instead of fighting fires.
One final note on platform status -- we know that stats were unavailable in the dev console this weekend and expect to have them back online tomorrow.
We do expect to add support for authentication via API Key + a secret key per application, to allow for things like periodic email newsletters. No ETA on that support yet, but we do know it's a valuable feature that you'll be looking out for in the future.
http://docs.google.com/Presentation?id=dxpbvz6_141gnxn58d8
The canvas page (www.hi5.com/friend/apps/displayAppCanvas.do?appId=xxxx) is smart enough to display the preview view if the user has not installed the application yet, so I would highly recommend not specifying a view in your activity and notification urls, and letting the canvas page logic display the appropriate view for you.
<Optional feature="hi5-lifecycle">
<Param name="installPingUrl" value="http://yourserver/handleInstall"/>
<Param name="removePingUrl" value="http://yourserver/handleRemove"/>
<Param name="invitePingUrl" value="http://yourserver/handleInvite"/>
</Optional>
This is a good time for a refresher on the existing events, so here's what to expect from each event:
NAME FIRES METHOD PARAMS
installPingUrl After install POST uid = userid of installing user
removePingUrl After uninstall POST uid = userid of uninstalling user
invitePingUrl After invite POST uid = userid of inviter, sent_ids = userids successfully sent to
One other note -- these pings are not currently signed. This has been requested by several developers and we do have a feature request open for this, although we don't have an ETA on that being completed at the moment.
Hope you find this useful.
To help spread your apps, we'll be adding a homepage and profile promotion for the Application Gallery starting Monday, and enabling email notifications Monday as well. Let us know if you have any questions about how to leverage our numerous viral channels for promoting your apps – we love all the new ways our users can enjoy hi5 with your apps!
Thanks again to all the developers that have helped make this launch a success. We're looking forward to a huge week next week for applications on hi5, as well as rolling out full access to our wiki and bug tracker, and getting started on hi5 Platform v2!
Quick refresher on required ModPrefs for gallery approval
| Permalink | Comments (0) | TrackBacks (0)We definitely want you to at a minimum have these ModulePrefs attributes defined in your XMLs.
<ModulePrefs
title="My Super Cool App"
summary="Tag line for my super cool app"
description="This app will let you do cool things"
icon="http://someserver/some15x15pixel-image.gif"
thumbnail="http://someserver/some120x60pixel-image.gif"
author_email="this-is-also@required.com" >
as always contact platform-help@hi5.com if you have further questions.
Happy Hacking,
Dave