Nate Kirby on how Genius uses React Native to move quickly on mobile

On October 16th Nate Kirby spoke to a crowded iOSoho audience about how Genius uses React Native to release new features quickly on both iOS and Android nearly simultaneously.Unlikely most tutorials you'll find online which focus on creating an app from scratch using React Native, Nate describes how we…

Nate Kirby @ Brooklyn Swift — Let's Async Up

On 6/20 Nate Kirby—iOS and Android developer at Genius—spoke to the Brooklyn Swift crowd at Genius HQ about how we use NSOperation to keep our code logical (and our view controllers from containing everything but the kitchen async).Check out the video below, and download the slides…

A smaller, sleeker app using the APK Analyzer

The Genius app started out just over 1 year ago with File > New Project.  Somewhere along the way, our baby APK ballooned into an almost unrecognizable 22MB.  But we were too busy adding new features, and no one event spurred us into action … until we encountered that gift that…

Identifying Text Ranges in an Uncertain World

I spoke at FirstMark Capital's Code Driven NYC on December 16, 2015. Check out the video below to learn how Genius uses fuzzy matching to correctly annotate webpages that change over time.…

Seven Habits of Highly Effective Gems

These days, writing a Ruby gem is incredibly easy, but writing a good one isn’t. I recently flew down to San Antonio to give a talk at RubyConf on specific ways that gem authors can make their users and contributors happy. Happy users means more traction for your library,…

Genius on Android: Typography and material design

The last few months have been an exciting rush of designing and building our recently released Android app—a brand new app, built from the ground up with the principles of material design. For our initial version, we designed a simple, clean UI with Genius’s bold brand colors.That’…

Introducing the Genius API!

At Genius we rise and shine driven by an ambitious mission: to annotate the world. We’re powered by an incredibly insightful, funny, and passionate community annotating millions of texts both on our site and now elsewhere on the Internet, thanks to our new Genius Beta tool. Whether we’re…

PSA: Internet Explorer requires all four arguments to document.createTreeWalker

If you, like me, typically use the Mozilla Developer Network documentation as the source of truth for the browser JavaScript interface, you may be forgiven for assuming that only the first argument to document.createTreeWalker is required. As it turns out, Internet Explorer requires all four arguments to be passed…

Installing CharlockHolmes on Heroku cedar-14

CharlockHolmes is a useful library for detecting the character encoding of strings of unknown provenance. It's both accurate and fast, thanks to its use of icu4c, a popular C library for unicode operations. Unfortunately, the native dependency makes installation on Heroku less than elementary.The good news is that there's…

XPath Is Actually Pretty Useful Once It Stops Being Confusing

I first met XPath in 2007, but we didn't become friends until just recently. For the most part I had avoided it; when forced to use it, I made do with trial and error. XPath just didn't really make sense to me.But then I came across a peculiar parsing…

Rap Stats: Breaking Down The Words in Rap Lyrics Over Time

Rap’s history has been traced many ways -- through books, documentaries, official compilations, DJ mixes, university archives, even parties. But until now you haven’t been able to look at the development of the genre through its building blocks: the actual words used by emcees.We introduce Rap Stats,…

Heroku's Ugly Secret

The story of how the cloud-king turned its back on Rails and swindled its customersA Rails dyno isn't what it used to be. In mid-2010, Heroku quietly redesigned its routing system, and the change — nowhere documented, nowhere instrumented — radically degraded throughput on the platform. Dollar for dollar a dyno became…