Transforming the world's data into knowledge
  • Products
  • Clients
  • Blog
  • Support
  • About Us

The Rhiza Feed

August 23, 2012

Rhiza Named One of Pittsburgh’s Top 10 Fastest Growing Tech Companies

by The Rhiza Team

0 Comments

The country’s leading media and location intelligence software company’s meteoric growth recognized by local business community.

Pittsburgh, PA (PRWEB) August 24, 2012

Leading media and location intelligence company, Rhiza, announced today that it has been named a Pittsburgh 100 company. This annual list, published by the Pittsburgh Business Times, includes the region’s 100 fastest growing companies, based on sales growth between 2009 and 2011. As part of the list, Rhiza ranked in the top 10 of all technology companies and in the top 50 in growth of the thousands of companies in the region.

Rhiza’s recent growth can be attributed to its launch of its web-based Rhiza for Media platform, which marries stunning design with advanced data science to help traditional and online media companies sell highly targeted advertising more effectively. Rhiza’s tools are also used to help analyze audiences more precisely, allowing better decision making around marketing, content selection and brand performance. Rhiza has become the tool of choice among cable and large media companies, such as Comcast.

“At Rhiza, we help our customers transform Big Data into actionable intelligence, which improves decision making and generates a huge return on investment,” said Josh Knauer, the company’s President & CEO. “We’re honored to have our growth recognized by our local business community, and are excited to continue expanding our impact.”

###

About Rhiza Labs, LLC

Rhiza is turning the business intelligence software industry on its head by making Big Data actually relevant and meaningful to executives and other decision makers within companies. The Rhiza team is obsessed with building incredibly simple to use, yet powerful software that allows its customers to sell smarter and make better decisions by being able to easily sort through massive amounts of data to find just the answers they need. Rhiza’s web-based applications have become the data analysis and visualization tools of choice throughout the media industry.

Rhiza has its headquarters in Pittsburgh, PA, with satellite offices in Seattle, WA and New York City, NY.

Category: Blog, In the News

August 14, 2012

Rhiza CEO Speaks on World Financial Symposium Panel

by The Rhiza Team

0 Comments

Rhiza CEO, Josh Knauer, is speaking today on a panel hosted by the World Financial Symposium titled, “Where is Everywhere: M&A in Geospatial & Location-based Technology”. Josh will be speaking about emerging trends in the marketing and advertising markets’ use of location-based data to increase ad sales, better target messaging and understand/grow audiences.

Here’s the announcement from WFS:

World Financial Symposiums invites you to attend the Market Spotlight Web Event “Where is Everywhere: M&A in Geospatial & Location-based Technology”.

The convergence and maturation of several markets and technologies–geospatial, GPS, business intelligence, mobile marketing and much more–is driving high valuations among companies that doing cutting edge work related to location data. Some analysts predict a wave of consolidation as both traditional and new players seek to geo-enable their application suites.

This spotlight examines the specific causes and potential ramifications of this wave, with examples of transactions, valuation data and how to profit as an owner in the current market.

Hear from…
Josh Knauer, CEO, Rhiza Labs
Allan Pym, COO, APOS Systems, Inc.
Rob Gorrie, Founder, Adcentricity
Steve Coast, Principal Architect, Bing Mobile/Microsoft and Founder, OpenStreetMap
Elon Gasper, VP & Director of Research, Corum Group
David Sonnen, Analyst, IDC
Ward Carter, Chairman, Corum Group

Event Details:
Tuesday, August 14, 2012
1:00 pm (NYC)

Category: Blog, Events

April 16, 2012

Rhiza’s Commitment to Flex Worktime

by Josh Knauer

0 Comments

Sheryl Sanberg, COO of Facebook. Source: Wikipedia

Sheryl Sandberg, the COO of Facebook, recently made headlines by announcing that she goes home at 5:30 every afternoon and encourages others to do so as well. I think it’s great that Sheryl has spoken out on this issue and think that more business leaders need to as well.

At Rhiza, we’ve had a Flex Work policy in place since the company started, where employees are able to choose the hours of work that are best for them. It’s not just a nice thing to do, it is better for productivity. I have found that employees that are treated with respect and given the chance to set their own schedules are able to be more focused and productive. For Rhiza, it’s not just a matter of encouraging people to go home by 5:30, but rather letting people truly set their own schedules that map most easily into their personal life.

Rhiza goes much further than just flexible work schedules. We have a Babies in the Workplace Policy, as well as a bunch of other very generous policies around sick leave, vacation time and more. These policies reflect the type of values that represent the type of company we all want to be working for, and they also give us a competitive edge in recruiting and the delivery of truly excellent product.

What does your company do? Clearly the business community needs to hear from more entrepreneurs who are building better companies that treat their employees with the respect that they deserve. Perhaps once that happens, announcing a common-sense policy won’t make lots of news, it will be considered part of the norm.

Category: Analysis & Commentary, Blog

April 16, 2012

First day at our new office space!

by higgins

0 Comments

So we still have some unpacking to do, but we’re hard at work!

Jeff and Alison at work in our new office

Jeff and Alison at work in our new office

Category: Announcements, Blog

April 6, 2012

Rhiza on the Move… No really, we’re moving

by Josh Knauer

0 Comments


For those of you who have been following Rhiza for a while, you know that we’ve been growing quite a bit. We opened a new office in Seattle late last year, and now we are proud to announce that we are moving our Pittsburgh office to a new location to accomodate for our growth. The Pittsburgh Business Times got the scoop on the story today and helped us spread the word that we are the anchor tenant in the newly formed Revv Oakland co-working space.

Our new offices are in the heart of the Oakland neighborhood of Pittsburgh, which contains both Carnegie Mellon University (CMU) and the University of Pittsburgh (Pitt). This will allow us easier access to CMU and Pitt researchers and students, access to over 20 public transportation routes and provide a tremendous number of food/shopping options for our team.

More than just location, as an anchor tenant for Revv Oakland, we are helping to support not just our own growth, but that of other tech startups in our community. Rhiza will be working closely with Revv Oakland to provide greater networking and skills sharing opportunities, so that tech startups will learn from Rhiza’s experience and we can learn from them.

With a growing list of new clients like Comcast, PepsiCo, Dun & Bradstreet and more, we’re going to need the new space and look forward to expanding our footprint and creating new jobs in the community.

Category: Announcements, Blog

March 14, 2012

Rhiza Helps PepsiCo Rock South by Southwest

by The Rhiza Team

0 Comments

The Rhiza team is proud to have been a part of the PepsiCo Central presence at South by Southwest (SXSW) 2012. Rhiza teamed up with fellow Pittsburgh-based companies MAYA Design and IonTank to design and build the space out for PepsiCo. Rhiza’s role was to aggregate, analyze and visualize data from around the social web, sensors on-site around SXSW, data collected within the Pepsico Central area and from people walking around Austin collecting data using Livescribe pens.

Check out the video summary that the folks at PepsiCo put together about the event:

Special thanks go out to our data partners, who helped set up special feeds of data to Rhiza: CivicScience, PeopleBrowsr, Livescribe, ImmersiveLabs and many more.

Category: Blog, Events

March 13, 2012

Why Small Is Better

by Alison Alvarez

0 Comments

I received an excellent piece of advice from a friend and current Google employee yesterday.  ”Don’t try to compete with Google on perks.”

Rhiza is hiring right now.  I like to think of us as small and scrappy, but it’s been tough competing for software engineers against Pittsburgh branches of bigger companies like Google and Apple.  We don’t have the instant name recognition of the bigger players and it’s been challenging getting the word out to the computer science community that Rhiza is an excellent place to work.

Rhiza does have plenty of benefits to compete with the big players (our starting vacation package is even 33% better than Google’s), but that’s not why it’s better to work for us.  Really, our strength is in our size and where we are with our current set of technologies.

So here, in a handy list form, is the set of reasons why working Rhiza is the better than working for a big company.

1. You will write code for production

Our engineering team is small, so everyone must contribute to the finished product.  While you will almost certainly be working with our existing code base, you’ll be using your brain to create tools that will be used by real people.  It feels so good as a developer to build something that people get real use from and makes their lives easier.

2. You will do more than tweak

You will not spend all of your time tweaking pixels in CSS or testing browser compliance.  These things have their place in our development cycle, but only as finishing touches on our products.  Otherwise, you’ll be helping us to build the tools our customers need.

3. Your time will be spent on valuable things

We believe in failing fast, so you are unlikely to spend months or years on a project that gets axed at the last minute.   We build prototypes quickly, test them thoroughly, and then rethink or discard things that aren’t working.

4. You will get to have company-level ideas

We had a meeting a few months ago about what new products Rhiza should focus on and everyone in the company was invited to give input.  Every single employee gave at least one idea and contributed at least one metric for measuring ideas.  Everyone gave input on where we would like to see Rhiza head next, and everyone was listened to.

5. You will be able to grow

Since we are small and growing there are many opportunities to take on new responsibilities.  For instance, I am now working on recruiting new people in addition to my usual engineering of software.  If you’re interested in aspects of business outside of coding, then this is a good opportunity to get on the job experience.

As for engineers who just want to code, we stay out of their way.

6. Our policies are consistent

Some companies have policies that sound awesome, but may not be a reality depending on your manager.  Because we are small everyone gets to use our benefits.  What’s the use of having four weeks of vacation a year if your manager won’t let you use them?

7. “Family Friendly” and “Flex Time” are real things at Rhiza

Today I left work at 2pm to retrieve my sick daughter from daycare, and now that she is asleep I am writing my first draft of this post and continuing my workday.  She spent the first six months of her life at Rhiza as part of our babies at work policy.   I worked while she napped and played, sometimes finishing my tasks at night or in the early morning.  We managed to get extra bonding time in while I continued to contribute at my job.

None of this would work if my coworkers complained or gave me the stink eye each time I used these policies.  Instead, they use them, too.  Even employees without kids use their flex time to wait for the alarm company, take a cat to the vet, or deal with car repairs.  The system works because everyone uses it.

8. It’s better to get in on the ground floor

Rhiza is going places.  Rather than working for a company that is already established, you’ll have a chance to join us early on our journey and travel with us.  It’s a chance to be a part of the next big thing while it’s still a small thing.

Category: Analysis & Commentary, Blog

March 9, 2012

Say Hello to Rhiza at SXSW

by Maryl Curran Widdows

1 Comment

Planning to head to SXSW? Stop by and say hello. The Rhiza team will be hanging out in Pepsico Central, playing with Rhiza Upshot and data feeds about the pulse of SXSW from Twitter, PeopleBrowsr, radian6, CivicScience, foursqaure, Facebook and more.

Check out the big screen and drop by if you are in town.

Category: Blog, Events

February 29, 2012

Honing the Craft

by higgins

0 Comments

This past Saturday Rhiza hosted a Coderetreat for members of the Pittsburgh development community. Coderetreat is a global organization dedicated to helping programmers become better programmers. It does this by helping local groups organize workshops – the code retreats – that let developers focus on key elements of the craft of programming without the day-to-day distractions of deadlines and bottom lines.

It’s also a lot of fun, and a good way to meet other programmers!

Despite the fact that Saturday was one of the few unabashedly wintery days we’ve had all year, turnout was really strong. I think just about the whole slate of 25 signed up people showed up for the day (which starts at 8:30am – not necessarily a congenial hour for your average programmer).

The day is highly structured. We were led by the intrepid Jim Hurne through a series of six 45 minute exercises. Each exercise is built around Conway’s Game of Life, which I’ve had a soft spot for going back to my nerdy high school days.

Here’s an animation of what the Game of Life can look like, from Wikipedia:

And here are some coders, hard at work implementing and testing it:

(There are more nice photos that Jim took of the code retreaters making the magic happen.)

One of the important things to grasp about Coderetreat, though, is that you’re not there to build a working implementation of something. The goal is to work on the process – if you actually finish a working implementation, you are probably giving the process short shrift. In fact, after each 45 minute exercise, you delete all your code and start over.

This is painful. Most working programmers are deeply invested in making things, and the idea of tossing out code that you’ve worked hard on, only to start all over is hard. But once you’ve done it a couple of times, it becomes a little easier.

Now, I have to admit, one of my partnerships did perform the dubious feat of finishing a minimal implementation. I’ll share the implementation here because it’s cute (and short!).

Warning: this blog post is about to get technical and nerdy. (Take me to a cute picture of dogs instead!)

One of the exercises revolved around designing the implementation in a “functional” rather than a traditional imperative or object-oriented style. Functional programming is actually one of the earliest programming styles, going back to the Lambda calculus that Alonzo Church developed back in the 1930s (before “computer science” was really a discipline – Church was a logician and interested in the formal foundations of mathematics). However, it is still very important today. “Functional” programs avoid explicit mutable state and “side effects”; instead, every operation is expressed as the evaluation of a function, and programs are expressed as compositions of those functions.

The lack of explicit state and side-effects makes functional programs a lot easier to reason about, so they tend to have fewer bugs. It is also often much easier to execute them in parallel, so high performance systems are easier to write. Functional programming languages are also often very “expressive” – meaning you can write short, clear programs easily. As programs get bigger and more complex and bug-prone, and computers tend to get performance from parallelism rather than from faster clock speeds, it’s likely that functional techniques will get even more important.

(There are downsides too: side effects are hard to avoid in most real-world programs, and some algorithms and data structures are hard to implement efficiently without explicit mutable state. Fortunately, you can often mix functional ideas with imperative ideas effectively. The code I’m about to show is very much a mutt in that way.)

At Rhiza we use Python and Javascript for a lot of our development. Both of these languages are imperative, object-oriented languages, but they both have “functional features” like first-class functions. (In fact, if you don’t know how to use closures effectively, you aren’t going to get very far programming non-trivial applications in Javascript.)

Jim had sent out email to all the attendees before the retreat that the exercises would revolve around the Game of Life. I happen to have been spending some time learning NumPy recently, a very nice numerical programming library for Python. It’s good at implementing linear algebra and scientific computing problems (optimization, curve fitting, data analysis, machine learning, etc.) Anyway, these two things had collided in my head in the shower, and I kept thinking that there ought to be a good way of expressing the Game of Life in terms of operations on matrices, which are efficient to use in NumPy.

There is!

It helps to start out by thinking of a functional decomposition of the Game of Life. You can imagine the Game of Life as a big two-dimensional array of cells that are either on or off, 1 or 0. Then the game undergoes a “step” and the board evolves to a new state based on a few simple rules:

1. Any live cell with fewer than two live neighbors dies, as if caused by under-population.
2. Any live cell with two or three live neighbors lives on to the next generation.
3. Any live cell with more than three live neighbors dies, as if by overcrowding.
4. Any dead cell with exactly three live neighbors becomes a live cell, as if by reproduction.

But before we get to implementing the rules, just think of the evolution of the system as looking like this:

step(X) -> X'

That is, you call the step function on your matrix of cells, and it yields a new array of cells that represent the next generation. But now we need to break the step function down further. If you look at the rules, each rule depends on two pieces of information: the state of the current cell, and the number of live neighbors it has.

So you probably need a function like this:

neighbor_count(cell) -> integer

and a function like this:

state(cell) -> 1 or 0

If you had those, you could write a “decide” function that took those two pieces of information and implemented the rules above. I’m going to switch to Python here, and show some real code:

def decide(state, neighbor_count):
    if state == 1:
        return 1 if neighbor_count in (2, 3) else 0
    else:
        return 1 if neighbor_count == 3 else 0

And that’s the heart of the Game of the Life!

Now, it turns out that if you use a NumPy array to represent your matrix of cells, you don’t really need an explicit “state” function. You can just look up the index of the cell you are interested in and the value in the array is the state.

So that’s great and all, but you still need a way to calculate your neighbor count, and you need a way to evaluate your “decide” function for each cell in the array.

For the second part NumPy can help us. It has a neat trick built in called “vectorization”. Just change the code above to read:

@numpy.vectorize
def decide(state, neighbor_count):
    if state == 1:
        return 1 if neighbor_count in (2, 3) else 0
    else:
        return 1 if neighbor_count == 3 else 0

What does that “@numpy.vectorize” do? It means that instead of needing to call “decide” individually on each state and neighbor_count for each cell in the matrix, we can call “decide” on a matrix of states and a matrix of neighbor_counts, and it will yield a new matrix. NumPy takes care of the details of iterating over the two matrices and assembling all the results into a new matrix. (It’s also much more efficient than writing nested for loops by hand.)

So you could write “step” like this:

def step(X):
    return decide(X, neighbor_count(X))

Which is exactly what we want to do!

But we still have a crucial missing piece. We don’t have a neighbor_count function at all, much less one that can operate on a matrix. But we can take advantage of some representational cleverness here.

X is a two-dimensional array of binary numbers: every cell is either 0 or 1. In signal processing, there is a concept called convolution. I’m not going to go into a lot of detail about what a convolution is, but here’s a nice simple example. If you’ve ever used Photoshop and applied one of the edge detection filters, or a Gaussian blur, you’ve used a convolution.

The cool thing is, on a binary matrix, there is a simple convolution kernel that exactly corresponds to “count my live neighbors”. It looks like this:

kernel = numpy.array([ [1, 1, 1],
                       [1, 0, 1],
                       [1, 1, 1] ])

Now, with a little help from the NumPy and SciPy libraries, we can write our neighbor count function:

kernel = numpy.array([ [1,1,1],
                       [1,0,1],
                       [1,1,1] ])
def neighbor_count(X):
    return convolve2d(X, kernel, mode='same', boundary='wrap')

(Tragically for my place in human history, I’m not the first person to have thought of this trick. If you Google “convolution game of life” you’ll discover several similar implementations, some with interesting extra cleverness.)

To put it all together, along with an example of the famous Glider pattern.

import time
import numpy
from scipy.signal import convolve2d

kernel = numpy.array([ [1,1,1],
                       [1,0,1],
                       [1,1,1] ])
def neighbor_count(X):
    return convolve2d(X, kernel, mode='same', boundary='wrap')

@numpy.vectorize
def decide(state, neighbor_count):
    if state == 1:
        return 1 if neighbor_count in (2, 3) else 0
    else:
        return 1 if neighbor_count == 3 else 0

def step(X):
    return decide(X, neighbor_count(X))

def display(X):
    print X
    print '----'
    print

def glider():
    X = numpy.zeros((10,10))
    X[1][2] = 1
    X[2][3] = 1
    X[3][1] = 1
    X[3][2] = 1
    X[3][3] = 1

    while True:
        X = step(X)
        display(X)
        time.sleep(1)

    return

if __name__ == '__main__':
    glider()

There’s actually a way to write the “decide” function by indexing into arrays, which makes the code a bit more dense, but a little less clear. Clarity (or revealing your intent) is one of the code retreat virtues! And for you code retreaters out there: yes, we wrote unit tests ;-)

Category: Analysis & Commentary, Events

February 9, 2012

Natural Gas Documentary Features InfoGraphics Created Using Rhiza Upshot

by Josh Knauer

0 Comments

A new documentary film produced by Kirsi Jansa incorporates maps and charts Kirsi made using Rhiza Upshot. Gas Rush Stories is a series of documentaries that explore the issue of Marcellus shale gas drilling in Pennsylvania, and people’s attitudes about it. In Part 6: A Private Pilot, Kirsi flies with amateur pilot Steve White to look at the impacts of drilling from above, and has an engaging conversation with Steve about the changes he’s witnessed in the landscape from a pilot’s view.
Read more »

Category: Blog, In the News

« Older Entries
Newer Entries »

Subscribe

Categories

  • Analysis & Commentary
  • Announcements
  • Events
  • In the News
  • Presentations

Follow Us

  • Twitter
  • LinkedIn
  • Facebook
  • RSS

Get Rhiza Labs Updates

Enter your e-mail address below to receive Rhiza Labs e-updates:

info@rhiza.com | 412.488.0600 | 5850 Ellsworth Avenue, Suite 200, Pittsburgh, PA 15232

  • Twitter
  • LinkedIn
  • Facebook
  • RSS
Transforming the world's data into knowledge

© 2013 Rhiza Labs, LLC. All Rights Reserved. Rhiza® is a registered trademark of Rhiza Labs, LLC.

  • Legal
A MAYA Company