A New Way to Report Bugs

If the way to a developer’s heart is great documentation, the way to stay there is through great support. Here at Parse we’ve always been happy to help through our community forums as well as through face to face conversations at one of our many developer meetups. As our community has grown, it has become increasingly important to provide a way to surface sensitive issues in a timely manner. Today, I’d like to introduce a new addition to our Help portal, the Report a Bug button:

reportbug
This will allow you to create a new bug report which can be associated with one of your Parse apps. You will also be able to tag your bug report with one of the top level product categories. This will help us triage bug reports as well as help other Parse developers discover related issues.

Let’s take for example a simple messaging app that allows people to send photos to their friends. These are stored in an Attachments class and I have set up an array of pointers through a Pointer field, attachments, in my Message class. Imagine for a second that the query I am using is suddenly not working and I’ve decided to submit a bug report. This sounds like a great fit for the iOS/OS X SDK > Queries category.

bugtoolreportflow
The above is a great example of a simple but concise bug report. It describes the unexpected behavior and provides all the code needed for our engineers to reproduce the issue. Once submitted, the report will be assigned to one of our engineers, and you will receive notifications on status updates for this specific report, such as “Fixed” or “Needs More Info”.

bugtoolstatus
You can also search for existing bug reports and known issues through the Bug Tool. You may subscribe to existing bug reports should you find that you’re running into a similar issue.

subscribe
I’m really excited about the launch of this new support channel, which will allow us to provide faster turnaround times for your bug reports. As always, feel free to leave any feedback on our community forums!

Héctor Ramos
March 25, 2014

MongoDB 2.6 Production Release Highlights

The Parse platform relies heavily on MongoDB. We use MongoDB for a variety of workloads, such as routing and storing application data, monitoring, real-time API request performance analysis, and billing and backend platform analytics. We love the flexibility and richness of the feature set that MongoDB provides, as well as the rock-solid high availability and primary elections.

So we are incredibly excited about the upcoming MongoDB 2.6.0 production release. You can read the full release notes here, but I’d like to highlight a few of the changes and features we are most excited about.

First and foremost, the index build enhancements. You will now be able to build background indexes on secondaries! For those who are unfamiliar with the way mongo performs indexing, the default behavior is to build indexes in the foreground on both primaries and secondaries. Foreground indexing means the index op will grab the global lock and no other database operations will be able to execute until the index has finished building (this includes killing the index build). Obviously this is not a reasonable option for those of us who ensure indexes are built in the normal request path. You can instruct the primary to build indexes in the background, which lets the indexing operation yield to other ops, but until now there has been no similar functionality on the secondaries. Parse makes extensive use of read queries to secondaries for things like our push services, and we have had to implement a complicated set of health checks to verify that secondaries are not locked and indexing while we try to read from them. Background indexes on secondaries will make this process much simpler and more robust.

Another terrific indexing improvement is the ability to resume interrupted index builds.

We are also very excited about a number of query planner improvements. The query planner has been substantially rewritten in 2.6.0, and we are eager to take it for a test drive. Mongo has also now implemented index intersection, which allows the query planner to use more than one index when planning a query.

The explain() function has been beefed up and they have added a whole suite of methods for introspecting your query plan cache. In the past we have often been somewhat frustrated trying to infer which query plan is being used and why there are execution differences between replica set members so it is great to have these decisions exposed directly.

Another interesting change is that PowerOf2Sizes is now the default storage allocation strategy. I imagine this is somewhat controversial, but I think it’s the right call. PowerOf2 uses more disk space, but is far more resistant to fragmentation.  An ancillary benefit is that padding factors are no longer relevant. One issue we have had at Parse (that no one else in the world seems to have, to be fair) is that we cannot do initial syncs or repairDatabase() because it resets all the padding factors to 1.0. This causes all updates or writes to move bits around disk for weeks to come as the padding factors are relearned, which in turn hoses performance. The inability to do initial sync or repair means we have had no way of reclaiming space from the database.

The hard-coded maxConns limit is also being lifted. Previously your connection limit was set to 70% of ulimit or 20k connections, whichever is lower, but the hard cap is now gone.  This totally makes sense and I am glad it has been lifted. However you should still be wary of piling on tens of thousands of connections, because each connection uses 1mb of memory and you do not want to starve your working set of RAM.

Here’s another thing I missed the first dozen or so times I read through the release notes: QUERY RUNTIME LIMITS! MongoDB now lets you tag a cursor or a command with the maxTimeMS() method to limit the length of time a query is allowed to run. This is a thrilling change. Parse (and basically everyone else who runs mongo at scale) has a cron job that runs every minute and kills certain types of queries that have been running past their useful lifespan (e.g. their querying connection has vanished) or are grabbing a certain type of lock and not yielding. If maxTimeMS() works as advertised, the days of the kill script may be gloriously numbered.

Ok, so those are the delicious goodie bits. Lastly let’s take a look at a painful but necessary change that I am afraid is going to take a lot of people by surprise: stricter enforcement of index key length. In all previous versions of mongo, it would allow you to insert a key with an indexed value larger than 1024 bytes, and it would simply warn you that the document would not be indexed. In 2.6 it will start rejecting those writes or updates by default. This is unquestionably the correct behavior, but will probably be very disruptive for a lot of mongo users when previously accepted writes start to break. They have added a flag to optionally preserve the old behavior, but all mongo users should be thinking about how to move their data sets to a place where this restriction is acceptable. The right answer here is probably some sort of prefix index or hashed index, depending on the individual workload.

There is a lot of exceptionally rich feature development and operational enhancements in this 2.6 release. We have been smoke testing the secondaries in production for some time now and we’re very much looking forward to upgrading our fleet. Be sure to check out the rest of the 2.6 release notes for more great stuff!

Charity Majors
March 25, 2014

Concrete Software Uses Parse for Push in PBA® Bowling Challenge

PBA Bowling being played on a white iPhone 5Concrete Software is a 25 person company in Minneapolis, Minnesota with a passion for building and publishing “rock solid” mobile games. Building games for feature phones (using J2ME), BlackBerry, Windows Mobile, and Palm OS since 2003, one of their biggest hits to date is PBA® Bowling Challenge. A freemium bowling game with multiplayer, career mode, more than 10 tournaments, and the real PBA players to play against, the app was built through close work with the Professional Bowlers Association.

Concrete Software turned to Parse to add push notifications to their apps. They use notifications to push relevant information to players, such as advertisements for limited sales and important updates with significant bug fixes or additions. Co-founder Keith Pichelman appreciates that, “Parse makes push messages simple without having to host messaging servers ourselves. We’re also excited about the recent addition to support Google Cloud Messaging (GCM).”

Regularly appearing in the top 50 grossing top 50 most downloaded US Arcade and US Sports apps, the app has also been featured in the iTunes Store in countries around the world and has over 8 million installs to date. You can play PBA® Bowling Challenge on Facebook and download it for free download on iOS and Android.

Courtney Witmer
March 21, 2014

Russian Developer Playrix Builds Township on Parse

Township screen on an iPhone 5Playrix, headquartered in Vologda, Russia, started out as a downloadable games developer nine years ago. Now building mobile games, they recently launched their first free-to-play app, Township. A city-building game with farming elements, the app focuses on managing and setting the production of various goods.

Accustomed to optimizing their work by using dedicated third party services and solutions, Chief Creative Officer Igor Elovikov says that the company decided to use Parse for Township’s backend after stumbling on an industry article about the platform.

The game uses Parse Data to store players’ profiles. Using Parse in this way is useful because even if a player deletes the app from a device, they will continue from where they left off if they download it again. According to Igor, “Parse is very convenient and is a great time-saver. We don’t need to worry about implementing these solutions on our own and can focus on the game itself. Parse offers us a stable and reliable platform that might be very difficult for a gaming company to develop and support in-house.”

Township was launched on iOS in late 2013 and on Google Play early in 2014. In just over three months, the game achieved almost 4 million downloads with a healthy retention, allowing the game to grow organically and achieve a 4.5 star rating across 80,000 reviews on both the iTunes App Store and Google Play.

You can download Township for free on the iTunes App Store, Google Play, and Amazon and play online on Facebook.

Courtney Witmer
March 14, 2014

Announcing f8 on April 30th, 2014

10012313_10101561081881268_356313840_oIt’s an exciting day for the Parse team as our CEO, Ilya Sukhar, just announced at SXSW that Facebook will be hosting an f8 this year. We’re excited to be a big part of this event, and to invite you, the members of our community, to join us on April 30th, 2014 in San Francisco. Held at the San Francisco Design Concourse, f8 will be a full day of technical talks and hands-on sessions for more than 1,500 mobile and web developers from around the world. There will also be a live stream of the full event for those of you who won’t be able to join in person.

We will have Parse engineers available throughout the day to provide one-on-one help and advice, and will close out the event with a celebration for attendees to unwind with drinks and entertainment.

After the success of Parse Developer Day and Facebook + Parse Mobile Developer Day, we’re excited to be a part of this larger Parse + Facebook event where we can come together to explore the opportunities available to developers building on the two platforms.

Visit fbf8.com to learn more and to sign up to be notified when registration opens. We’ll begin accepting applications to attend soon!

Ashley Smith
March 8, 2014

Glu Brings Deer Hunter 2014 to Facebook with Parse

Glu, a leading global developer and publisher of free-to-play games for smart phone and tablet devices recently turned to Parse to help bring their hit, Deer Hunter 2014, to Facebook Canvas. Headquartered in San Francisco with teams outside Seattle and in Canada, China, India, Korea and Russia, Glu is focused on creating compelling original IP games on a wide range of platforms including iOS, Android, Windows Phone and MAC OS.

With a long history of developing for the Deer Hunter brand, acquired from Atari in 2010, this is the fifth game Glu has published in the Deer Hunter mobile series. Already aware of Parse as a tool for developing games on Facebook, the acquisition of Parse by Facebook made it an obvious choice for Sourabh Ahuja, Vice President for Android and Cross-Platform Development at Glu. As Glu’s first real attempt at a Facebook game, the team found that although there was a bit of learning curve, Parse’s seamless integration with Facebook helped the team to quickly implement most of the key Facebook specific features like Facebook payments, achievements, and stories.

With more than 2 million installs to date on Facebook, Deer Hunter 2014 is not only the first game Glu has ported to Facebook using Parse, it is also their most successful title of all time in terms of overall downloads and revenue. As a result, Sourabh reports that, “In my eyes, efficiency, ease of use and stability are the most important benefits of a BaaS. Parse’s seamless integration with Facebook helped us a lot in quickly implementing most of the key Facebook specific features like Facebook payments, achievements, and stories.”

You can play Deer Hunter 2014 online on Facebook, or download it for free on iOS and Android.

Courtney Witmer
March 7, 2014

Free Your Data

Getting to your data is an important part of many application development flows. Whether you need to perform additional analysis on your data, back it up, or duplicate it in a different Parse app, exporting quickly becomes a crucial piece of your development toolkit.

Over the last few weeks, we’ve greatly improved the performance of exports, ensured that our export system could handle even the largest apps, and added some neat UI features to improve the overall experience. For larger apps, it’s not very convenient to export and download all of your data if you really just need one or two collections. To help with this, we’ve added a menu item in the data browser that will allow you to export a single collection.

Single collection import

Additionally, we added a progress bar in the main app export in the settings page. Since large apps could take several hours to export, this will give you more insight into what’s happening on our side.

App export progress

This is a first step toward improving some of the development flows that require extracting your app’s data. We have many exciting features in the pipeline but we’d love to hear your thoughts on how these flows could be improved. If you have a use case that is difficult to accomplish at the moment, reach out to us on Parse Help and let us know!

Mattieu Gamache-Asselin
March 5, 2014

Parse March 2014 Events

March is going to be a busy month for the Parse team. We’ll be attending and hosting several different events this month, and hope that you can join us at some of the following:

SXSW Interactive – March 7 – 11, 2014 – Austin, TX

Facebook, Parse, and Instagram will be hosting several events during the course of the SXSW festival this year, as well as several talks at the conference. Check out this blog post for a full listing of events.

Parse Austin Meetup – March 10, 2014 – Austin, TX
Join us for our first Parse Austin Meetup. This event does not require a SXSW badge and is open to anyone in the developer community who is interested in learning more about Parse. RSVP here to join us in Austin!

Game Developers Conference – March 19 – 21, 2014 – San Francisco, CA

Facebook and Parse are excited to be at the Game Developers Conference this year. Stop by booth 1838 to meet with members of both teams, and don’t miss the talk, “Facebook Unlocked: Trends & Growth Opportunities for Cross-Platform Games” which will include thoughts from Parse CEO, Ilya Sukhar.

BoxDev14 – March 26, 2014 – San Francisco, CA

Parse will be participating in BoxDev14, including an introduction to Parse talk. Visit our team on-site to chat and bring us your questions about developing on Parse. If you haven’t already registered to attend, you can do so here with the code parsedev for 50% off!

We hope to see you at some of the above events this month!

Courtney Witmer
March 3, 2014

New Musx App from Savvy Apps Makes Music Sharing Simple

musx on iphone 5cSavvy Apps, a mobile agency based just outside of Washington, D.C. turned to Parse to help power their newest app, musx. Having built apps for customers ranging from startups like Homesnap to household names like PBS, it’s no surprise that their newly released offering for app co-founders Eddie Sniezek and John Reardon is already off to a five-star start in the app store.

Musx is designed to be the simplest way to share music with friends. By making sharing a song as easy as sharing a photo, musx lets you access the latest music recommendations from your friends and favorite sources on a personal feed. The idea was conceived when Sniezek and Reardon recognized that having to use separate apps to discover, share and listen to music left them without an easy way to find, save and interact with suggestions from their friends.

In order to find the best way to fix this fragmented music experience, Reardon and Sniezek developed multiple beta sites and hosted large concerts to get feedback from their peers along with bands and venues. It became clear that the disconnect between where music is listened to and where it is shared caused fundamental problems for music fans and professionals alike. They raised seed capital from investors in New York and hired Savvy Apps to refine and execute the idea, initially on the iPhone.

Released on iOS in mid-February 2014, the app’s backend is powered by Parse and uses logic in Cloud Code to manage follower, popular now, and share calculations. Because musx is based on friends, the app offers Facebook and Twitter login via Parse Social to make a user’s network available immediately. The app also makes use of Parse Push to keep users engaged by notifying them when they are followed or mentioned.

With the help of Parse, Savvy Apps was able to bring musx to market faster and with lower initial costs. With the app’s great momentum, the ongoing affordability along with the capacity for scale makes them confident in their choice to use Parse for their backend.

Download musx for free on iOS today, and keep an eye out for the future Android release.

Courtney Witmer
February 28, 2014

Parse + Facebook at SXSW 2014

Parse and Facebook are excited to be participating in SXSW this year, and we have a great lineup of speakers and events for conference participants (and non-participants) to attend. Keep an eye out throughout the event for the Parse + Facebook ice cream truck and be sure to register for the events below:

  • Friday, March 7th: Parse + Facebook Welcome Party, The Parish, 8PM – 12AM
    Join us at The Parish to kick off a great week of events. We’ll have performances by Learning Secrets, The Black Angels, and Holiday Mountain, plus much more. RSVP here today!
  • Friday, March 7th & Monday, March 10th: The Facebook Counter, FB HQ at the Belmont, 11AM – 3PM
    Register for some one-on-one time with Parse and Facebook team members at “The Counter” at FB HQ during SXSW. Pop in, grab a drink, and get some tips from Facebook and Parse experts from the Marketing and Platform teams. You must RSVP for a spot.
  • Sunday, March 9th: FbStart, FB HQ at the Belmont, 10AM – 12PM
    Apply to join Parse + Facebook at FbStart Austin for a special mobile-focused event for top startups covering how to best use Parse + Facebook’s organic and paid channels to drive growth, engagement and re-engagement on mobile. Including a fireside chat and Q&A session with the co-founder and CEO of Parse, Ilya Sukhar, the event is geared towards those focused on marketing, growth, and user acquisition. Content will be non-technical in nature and will be most relevant for companies who currently have, or are building, a native mobile app. We can accommodate up to two people per company. Apply to attend here.
  • Monday, March 10th: Parse Austin Meetup, Capital Factory, 7PM – 10PM
    If you’ve never used Parse before and need an overview, or if you want to learn more about what Parse apps are doing in the wild, join us for this meetup. There will be three talks from the Parse team, our partners at SendGrid, and a customer, plus open Q&A and, of course, drinks and networking. You can register to join us here – no SXSW pass necessary!

In addition to the events we’re hosting, also be sure to check out the great talks from Facebook, Parse, and Instagram team members throughout the conference, especially Parse CEO Ilya Sukhar’s talk, “Bringing Sexy Back to Developers” on Saturday, March 8th at the Four Seasons Ballroom from 3:30 – 4:30 pm. Get more details about the talk and talk venue here.

Courtney Witmer
February 27, 2014

Archives

Categories

RSS Feed Follow us Like us