and text is intensive and can lead to performance issues Causes: • Users are creating increasingly complex games • Cloning allows for projects to grow in complexity exponentially • We have high quality vector images of our characters Existing code: In our HSStageObjectView: • Override drawRect with our own drawImage function • Call setNeedsDisplay to trigger redrawing
the stage objects ImageViews • Trigger redraws from the StageObjectViewControler for more precision • Provide hard limits on character size and number of characters • Long term: move to Javascript and GL Takeaways: • It is kind of weird to have a game in UIKit (but cool also) • Giving the view an imageView allowed for faster scaling P1: Performance limits in UIKit
not always guaranteed awesome content to play when I’m exploring beyond the “Featured” channel Causes: • Spamming for likes • Using Hopscotch projects to chat • More new users (yay!) experimenting with simple projects Solution: • Extrinsic factors (number of likes, remixes, plays, recency) • Intrinsic factors (projects stored as JSON) • Bayesian classifier to identify high quality projects
and looking at project data to form hypotheses about useful attributes • Read about Bayesian spam filters • Build a tool to classify data for training set • Build classifier that can tell us which projects are great • Optimize and deploy code for production
features • First instinct to write a bunch of boolean checks not as comprehensive • Statistical approach can evolve with trends Disadvantages: • Big time investment labeling • “Greatness” is a subjective measure • High standard deviations • Tradeoff between false positives (spam mistakenly identified as ham) and false negatives (the opposite) • Still requires manual curation
Better testing with Jasmine • TypeScript ~= Swift • Javascript Ecosystem Disadvantages: • Time investment • Tooling around TypeScript Takeaways: • Made us want to do more Javascript