Quantcast
Channel: Kifi Engineering Blog » Andrew Conner
Browsing all 15 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

Using Guice with Play! Framework 2.1 for easy Dependency Injection

One of Play! Framework 2.1‘s latest features is the ability to construct controllers, so you can use dependency injection. Briefly, the benefits of using dependency injection is that you will have more...

View Article



Speed up your Play! controller tests 100x

In the previous post, I explained how to use Guice with Play! 2.1 for easy dependency injection. At the end, I demonstrated how to test Play! controllers directly, without creating a FakeApplication....

View Article

Image may be NSFW.
Clik here to view.

Building nginx to use WebSockets

With our Play! applications, fast real time server ↔ client communication is very important. Fortunately, Play! has a great API for handling data reactively with Iteratees, Enumerators, and...

View Article

Image may be NSFW.
Clik here to view.

Doing real-time communication? Secure WebSockets vs HTTPS Benchmarks

We benchmarked round-trip times with Secure WebSockets (wss://) vs HTTPS to see if there was a noticeable difference in response speed. For Secure WebSockets, we timed the difference between the client...

View Article

Creating an async consumer Iteratee in Play!

The Play! Iteratee framework is very nice for reactively handling data streams. If you haven’t worked with Iteratees yet, think of them as consumers/sinks with a state. For example, in the Chat room...

View Article


Image may be NSFW.
Clik here to view.

Separate multi-project deployment packages in Play! Framework

Play Framework projects can build from several Play / sbt projects. A common use case is to keep code modular and composable. The official documentation shows how to combine Play projects, but does not...

View Article

Using Websockets with Play! talk

We use websockets for our clients because we care deeply about a fast, responsive user experience. At the Play! Framework meetup (based near us in Mountain View, CA), we presented an introduction to...

View Article

Dealing with top-level Actor exceptions

Akka actors are great for reactively and asynchronously handling work loads. Typically, for larger actor systems, it’s best to use a Supervisor to handle unexpected failure. However, for top-level...

View Article


Image may be NSFW.
Clik here to view.

Future goodies and helpers: SafeFuture, TimeoutFuture, CancelableFuture

Related to our previous post about catching top-level Actor exceptions, we also have a few utility classes for working with Futures. These do things such as offer baked-in exception logging, establish...

View Article


Database patterns in Scala

This is the first in a three part series about our database access layer and patterns we’ve adopted (part 2: Clean and re-usable Slick modules). We use Slick to type-check and build our queries, but...

View Article

Image may be NSFW.
Clik here to view.

Emojis in Play! test logs

Several months ago, Play! secretly added emoji support in the test logs. To add this revolutionary feature to your project, throw play.Project.emojiLogs in your project’s settings. James Roper cautions...

View Article

Clean and re-usable Slick modules

This is the second post in a three part series about our database access layer and patterns we’ve adopted. If you missed the first, read about some of the patterns we use when working with our...

View Article

Hooking in to Play! Framework’s sbt plugin lifecycle

In the Play documentation, we see how to hook in to the Play application’s life cycle with Global’s onStart, onStop, etc. However, sometimes you want to hook into the Play sbt plugin lifecycle for...

View Article


Image may be NSFW.
Clik here to view.

Typesafe case study on Kifi

We were happy to participate in a case study that Typesafe wrote on Kifi. Specifically, they were interested in how we used the Typesafe Platform to build the reactive and scalable platform that powers...

View Article

Image may be NSFW.
Clik here to view.

Dynamic sizing content in Keep cards

For our latest design of Kifi.com, we’ve moved to a graphical, content-centric view for keeps. Each keep appears as a card that contains the title, description, primary image, and metadata about the...

View Article

Browsing all 15 articles
Browse latest View live




Latest Images