Houzz.com

Houzzer Profile: Sally Huang, Visual Technologies Lead

image

Today Houzz released View in My Room 3D for iPhone® and iPad®, which allows app users to preview more than 300,000 furniture and decor products from the Houzz Shop in 3D, within their own homes, before they buy. As the team lead, Sally Huang oversees all aspects of the 3D and augmented reality (AR) technology features for Houzz from developing a roadmap to data creation and processing pipelines, to the actual code that displays it. Outside of work, Sally enjoys photography, playing geeky board games, and spending time with Digby, her corgi.

How will View in My Room 3D help homeowners and home pros with their projects?
View in my Room 3D will help users overcome the visualization gap. It’s difficult to imagine how a piece of furniture or fixture might look in your own home without being able to tangibly place it in the space. This feature empowers homeowners and home pros to virtually arrange products in a home, manipulate the items, rotating and placing them at the best position and angle to see how the product would look in real life. You can then either buy the product within the Houzz app or capture what’s on your screen, creating a Sketch that is saved to a Houzz ideabook where it can be shared with family, a home professional or other collaborators.

How does the 3D experience improve the previous 2D version of View in My Room?
Since View in My Room was introduced in 2D last year, it has driven higher engagement and purchase conversion on the Houzz App, but we knew there were opportunities to further enrich the experience for the community. The 3D feature allows users to rotate the furniture 360 degrees instead of just flipping it, helping users to more realistically visualize furniture layout before purchase.

What was the biggest challenge that your team faced in creating View in My Room 3D and how did you overcome it?
Houzz has one of the largest libraries of 3D furniture models – more than 300,000 products – which is an incredible offering for our community. Working with the sheer volume and complexity of 3D data was challenging because that requires processing many types of data from text to images to 3D meshes. We worked with other teams within Houzz to develop backend infrastructure and farm automation to manage the product volume of the project.

What’s the development process like at Houzz?
The development process at Houzz is very collaborative. We knew we wanted to create something that could impact the broader Houzz community, which meant we needed to work very closely with multiple teams to ensure a seamless integration of this feature into all aspects of the Houzz app. Almost everyone at Houzz had a hand in developing the final product – design and iOS engineering ironed out the app UX, while data analytics built the data processing farm, and the marketplace team provided product APIs, backend setup and managed our servers. There were so many other people involved, as well. It was truly a team effort.

Your background is in video game development. How does that apply to what you do at Houzz?
Video games have been using 3D graphic technology to deliver compelling user experiences for decades. From 3D data management techniques to 3D user experience paradigms, I take a lot of ideas from my experiences in video game development and apply them to solve real world problems for the Houzz community.

What do you enjoy most about your role at Houzz?
Definitely the people. Houzz has an amazing and intelligent cross-disciplinary team that works together to solve difficult problems. We come up with the best and most creative solutions when people with vastly different backgrounds (for example artists and engineers) put their minds together, and I’m thankful every day to be able to work with such a diverse group of people.

Watch Mila Kunis Surprise Her Parents with a Major Renovation on My Houzz



In the latest episode of “My Houzz,” Mila Kunis secretly renovates the LA condo where her parents raised her and her brother, and have been living for more than two decades. According to Mila, the space didn’t work well for her family before the project and “kinda looked like Miami Vice, circa 1994.”

Mila used Houzz at every step of the process to transformed the compartmentalized condo into an open, bright space their growing family can enjoy.

The episode even includes a cameo by Mila’s husband and My Houzz Executive Producer Ashton Kutcher. Watch it here, shop the look and check out the ideabooks Mila used for inspiration.

It’s Time to Put Your Best Front Yard Forward

The saying, ‘put your best foot forward,’ is certainly ringing true with nearly half of landscaping projects focused on the front yard (44%), according to our 2017 U.S. Landscaping Trends Study. The survey of nearly 1,000 U.S. homeowners who are planning, in the midst of, or recently completed an outdoor project, found that these new looks are being driven by environmentally conscious decisions, pressures from a homeowners association and the desire to personalize a new home.

Of the three-quarters of homeowners who have a lawn, 76% make changes to it during an outdoor project. Front yard lawns are much more likely to be removed altogether than back or side lawns (26% versus 9%, respectively), with environmental considerations being a stronger motivator for front lawns (44% versus 26%, respectively).

image

Among those reducing or removing their existing lawns, ground cover plants (55%) and mulch (50%) are favored for front yards. More than half of those updating their front yards say that beds or borders (47%), shrubs (29%), and perennials (28%) are the most important features of their home’s curb appeal. Other top features include trees (18%), lighting (16%) and pathways (13%).

image

This also provides ample opportunity for homeowners to differentiate their frontage from the rest of the neighborhood, letting their unique personalities shine. Only 6% of front yards are nearly identical to others in the neighborhood after outdoor projects, compared with over a third before the update (36%). Two in five front yards are very or extremely different from others in the neighborhood post-update (41%).

image

All differentiation is within reason depending on where you live. One in four outdoor projects (23%) is subject to local restrictions or requirements, such as homeowner and/or neighborhood associations (23% and 5%, respectively). In the absence of those rules, nearly one in four homeowners would either take on a different project or skip the project altogether (13% and 3%, respectively). Find out any HOA boundaries before you take a shovel to the soil!   

image

While the term ‘curb appeal’ is often associated with real estate listings, the highest motivation for starting a landscaping project is led by homeowners who have purchased a home and want to personalize it (33%). This is followed closely by those who pursue an outdoor project because elements of the outdoor space have deteriorated and/or broken down (32%). Other projects are driven by homeowners who have wanted to do it all along and finally have the time (28%) or financial means (25%) to do it.

image

Whatever the motivation, a secondary result from outdoor projects might surprise you. One in five homeowners reports more interaction with next-door neighbors post-project (18%), which ranges from small talk (71%) and providing help when needed (42%) to sharing drinks or meals with each other (32% and 28%, respectively). Interactions with neighbors increase twice as much for new homebuyers (40%), pointing to outdoor projects as ice breakers when moving into a new neighborhood.

image

You can read the full report here.

A National Siblings Day Surprise from Actress Jenna Fischer on My Houzz



In time for National Siblings Day, we’ve launched the latest episode of “My Houzz,” which features actress Jenna Fischer as she surprises her sister Emily with a major home renovation. The house holds particular meaning as it was designed by Jenna’s grandfather, is the home where her father grew up, and the host to many Fischer family events.

Using Houzz, Jenna was able to renovate Emily’s home in Missouri from her home in California, including finding a local designer with great reviews, sharing ideas with the Houzz community, and purchasing products and materials from the Houzz Shop.

Watch the episode here, shop the look and check out the ideabooks Jenna used for inspiration on Houzz. Stay tuned for three more My Houzz episodes launching in the coming months.

Announcing Hide From My Room™ in the Houzz App



Today, we’re excited to introduce Hide From My Room™, a new tool in the Houzz app helps you get rid of unwanted items in your home, instantly. We heard from the Houzz community that a major hurdle to achieving their home vision is disposing of unwanted items, whether it’s heavy, difficult-to-move furniture or small, nagging items.

To try Hide from My Room™, download the Houzz mobile app from the Apple App Store℠ or Google Play™. (This feature is only available in the Houzz app from 12 a.m. - 12:01 a.m. local time on April 1.)

Happy April Fools’ Day!

Houzzer Profile: Ela Ganor, UI/UX Product Designer

image

As a member of the mobile development team based in Tel Aviv, Ela is responsible for the design and experience of the Houzz apps, on both the iOS and Android platforms. When she’s not at work, Ela enjoys hitting the beach or park to play volleyball, juggle, spin poi or Hula Hoop.

How did you get into design?
I’ve been drawn to design for as long as I can remember, doodling on every notebook or piece of paper available. Being a pretty geeky kid, I loved playing video games and spent countless hours exploring the wonderful place called “The Internet”. These passions drove me to get my bachelor’s degree in design and visual communication. From there, product design was a very natural career choice.

Why did you decide to join Houzz?
As a product designer, there are a few things that are important to me in a workplace. The product has to be interesting and challenging, there needs to be a team of talented people that inspire me, and the product needs to make a difference and have an impact. Houzz answered all of my criteria in the best way!

How would you describe the design process at Houzz?

The design approach at Houzz is holistic, yet agile. The process starts with an initial idea, though in some instances, it is driven by an issue that requires attention. From there, we define exactly what we want to accomplish. These ideas come from a variety of sources, whether driven by our team’s creativity or requested by our community.

The designer leads the process by brainstorming new solutions via doodles on paper or a whiteboard. Then, the designer creates a prototype and gets feedback from the team and our Houzz community, before updating and iterating on the final design.

The design process never truly ends, as we always aspire to improve, get feedback and suggest simple and elegant solutions that continue to make a great product even better.

Since you’re based in Tel Aviv, how do you work with the design team based in Palo Alto?

I am fortunate to be surrounded by very talented people here in the Tel Aviv office, as well as in Palo Alto. When collaborating with a remote team, communication is key. There are a lot of things to consider, as we need to share ideas, provide feedback, find answers and stay in sync. For that, we combine several different communication and collaboration tools and platforms for sharing design and prototypes. We always strive to increase transparency and evaluate new tools as they evolve.

What Houzz project are you most proud of?
We are working on some very cool updates for View In My Room, which I’ve been honored to work on with some of our best developers in the TLV office. It’s too soon to share the full details, but it’s going to be awesome so stay tuned!

What do you do when you’re not at work?
I love a good challenge, either physical or mental. Since I live by the beach, you’ll often find me there when I’m not working, either playing beach volleyball or just hanging out. I also enjoy juggling in the park, spinning poi and Hula Hooping. And of course, I’ll use any available piece of paper to paint or doodle.

How would you describe your personal home design style?
I try to reflect my personality in home design choices. It’s a combination of modern, vintage and contemporary pop. I really try to bring the space to life with lots of colors, art covered walls, plants, and DIY furniture that I built myself.

Dedicating Space to Work From Home

image


As we saw from the viral video of Professor Robert Kelly—whose daughter hilariously danced her way into his TV broadcast interview—creating a space to productively work from home requires a number of thoughtful considerations.

Houzz conducted a series of polls with more than 900 responses from our community of homeowners and home pros to find out what makes for the perfect working from home space, as well as top challenges to skipping the office.

image

From converted linen closets, to loft spaces, to dual-purpose guest bedroom/offices, 84% of respondents have a dedicated space for working from home. When asked what element is most important to being productive in their home office, 31% said they need a comfortable desk and chair, followed by 27% who require a door for privacy and 17% who prefer a quiet location away from living areas and kids’ bedrooms. Good lighting and storage space are also important considerations (10% and 9%, respectively). 

image

Houzzers identified a number of pet peeves associated with setting up shop in their homes, including interruptions (45%), too much clutter due to a lack of storage (21%) and sharing space with others (9%).

Check out home office inspiration here and the most popular desks, chairs organizers and more, here.  

Android Code Coverage with JaCoCo

At Houzz, we use automatic testing to ensure that the Houzz App is stable and bug free. With time, the automation test suite has gotten larger, and more comprehensive. As developers, we wanted to measure how much of our code is being tested and to understand what scenarios are accounted for, which not, and what additional automated testing to add. To do this, we used Code Coverage. It is common practice to use Jacoco on Android, specifically, but it’s integration into Jenkins and a continuous integration system is far from simple.

In this article, I will demonstrate how to integrate code coverage into Jenkins automated continuous integration using a simple Android app. The full code of this post can be found on github.

Simple Demo Project

I made an app that contains a screen with one button. Clicking on the button causes the text to appear.

image

Unit Testing

To test this app, I chose to use the Espresso framework. This framework is the official framework for Android unit testing. Other frameworks that can be used include Robotium and UIAutomator.

The scenario covered by the test is that a click on the “Hello World!” button causes the “I am alive!” text to appear.

Here is the code:

@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {

    @Rule
    public ActivityTestRule mActivityRule = new ActivityTestRule(MainActivity.class);

    @Test
    public void checkButton() { 
        onView(withId(R.id.button)).perform(click());
        onView(withId(R.id.textview)).check(matches(withText(R.string.i_am_alive)));
    }
}

Running this code makes a click on the button and, once the text is verified to match the required test, the text to appear.

Adding Code Coverage

Now for the code coverage. To add the code coverage to the app we need to add this line to the build.gradle:

buildTypes {
    debug {          
        testCoverageEnabled true
    }
}

This will add the code coverage to our code (done automatically).

Another line we should add is the version of JaCoCo that we want to use. I chose the 0.7.5.201505241946 version because the JaCoCo plugin for Jenkins is configured to use this version (at the date of writing this post).

apply plugin: 'jacoco'
jacoco {
    toolVersion = '0.7.5.201505241946'
}

Building

When running a UI test on the emulator or device the gradle builds two apk files, one for the app, and one for the testing code. Let’s build both the app and the testing app and install them.

First connect a device or an emulator, and type in the command line in the project folder:

./gradlew clean installDebug installDebugAndroidTest

This command will:

  • clean the build folder
  • compile and install the app on the device
  • compile and install testing app on the device

Running Test with Code Coverage

Now for the fun part. Run the tests from command line:

adb shell am instrument -w -r -e coverage true  -e debug false -e class houzz.com.hellojacoco.ExampleInstrumentedTest#checkButton houzz.com.hellojacoco.test/android.support.test.runner.AndroidJUnitRunner

Let’s explain the above command first:

  • “adb shell am instrument -w” runs all the UI tests
  • “-e coverage true” tells the runner to run the UI tests in a code coverage mode. By default, the code coverage results file will be saved in a /data/coverage.ec file, unless overridden by coverageFile flag.
  • “-e debug false” is because we don’t want to debug the testing
  • “-e class houzz.com.hellojacoco.ExampleInstrumentedTest#checkButton houzz.com.hellojacoco.test/android.support.test.runner.AndroidJUnitRunner” this tells our app to run a specific test

Learn more about running tests from command line here.

An example output is:

INSTRUMENTATION_STATUS: numtests=1
INSTRUMENTATION_STATUS: stream=houzz.com.hellojacoco.ExampleInstrumentedTest:
INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
INSTRUMENTATION_STATUS: test=checkButtonINSTRUMENTATION_STATUS: class=houzz.com.hellojacoco.ExampleInstrumentedTestINSTRUMENTATION_STATUS: current=1
INSTRUMENTATION_STATUS_CODE: 1
INSTRUMENTATION_STATUS: numtests=1
INSTRUMENTATION_STATUS: stream=.
INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
INSTRUMENTATION_STATUS: test=checkButtonINSTRUMENTATION_STATUS: class=houzz.com.hellojacoco.ExampleInstrumentedTestINSTRUMENTATION_STATUS: current=1
INSTRUMENTATION_STATUS_CODE: 0
INSTRUMENTATION_RESULT: stream= 
Time: 1.621
OK (1 test)
Generated code coverage data to /data/user/0/houzz.com.hellojacoco/files/coverage.ec
INSTRUMENTATION_RESULT: coverageFilePath=/data/user/0/houzz.com.hellojacoco/files/coverage.ecINSTRUMENTATION_CODE: -1

The output of this whole process is represented as a “raw” file that stores the coverage results file - coverage.ec. Notice at the end of the output of the command to the next line:

Generated code coverage data to /data/user/0/houzz.com.hellojacoco/files/coverage.ec

You won’t find it if you search in your computer. That is because this file is saved on the device. We need another command to pull the file from the device.

adb pull /data/user/0/houzz.com.hellojacoco/files/coverage.ec

Using the Coverage File

Now we have a binary file, and in our case it’s 4.0K in size. But what should we do with it?

This is the part where most developers get stuck. I dived into the Jacoco projects code and found a ReportGenerator.java file. This class generates a report for an Eclipse project style, so I changed the code a bit and exported a jar that will fit our needs.

Executing the jar is simple:

java -jar android-jacoco-the-missing.jar -f /path/to/coverage.ec -p ./hellojacoco

And it will generate a folder named coveragereport/ one level above project’s folder. (this can be changed with the -r flag)

So let’s dive into it and see the report in the index.html file:

image

What we see here is the package of our app. When we dive in we can elaborate on specific code coverage metrics. Clicking on the link brings you into:

image

Here are all the classes that we tested. One is the main activity, while the second is an anonymous class of a OnClickListener. We can see that we have a 90% coverage. Clicking on the MainActivity link gets us into:

image

What we see here is all the line that the test visited highlighted in green. If a line is not covered it is highlighted in red. If a “if” clause is passed with one result (true or false) it is highlighted with yellow color.

Using the Jenkins Plugin

For those who use Jenkins as part of their building process, there is a another option in order to process the coverage binary file. In this case you can install the JaCoCo plugin for Jenkins. After installing it, you need to configure it in the project. We need to go to the post build section and add “Record JaCoCo coverage report”:

image

I recommend to add this line to the exclusions section:

 **/R.class,**/R$_.class,__/BuildConfig._,_<em>/Manifest_.</em>,_<em>/_Test</em>._,android/__/_.

This will make android ignore those generated files.

And now you have a code coverage integrated into your Jenkins build system. You will now be able to monitor your test coverage and determine which features need more testing. Happy testing!

Watch My Houzz, Featuring Actor Kristen Bell’s Surprise Renovation



We are excited to share the latest episode of “My Houzz,” a video series that follows people as they renovate the home of someone meaningful to them, starring actress Kristen Bell. The episode follows Kristen as she surprises her sister, Sara, with a major basement renovation to create a beautiful, functional space for her and her family.

Kristen used Houzz to pull off the surprise remodel in Michigan from her home in California, including finding a local professional with great reviews, sharing ideas for her sister’s dream home, and buying all the furniture and accessories from the Houzz Shop.

This episode follows the success of the My Houzz pilot featuring Ashton Kutcher, who secretly remodeled the basement of his family home in Iowa. The 2017 series includes five episodes that will premiere in the first half of the year. Each episode documents a well-known, public figure as they surprise a close family member that made a difference in their life with the gift of a renovation, using Houzz throughout their journey.

Grab some popcorn and watch the video here. You can also learn more about the design, shop the look from the renovation and check out Kristen’s Houzz profile.

Houzzer Profile: Mark Mao, Research Scientist

image

As a research scientist, Mark strives to solve challenging computer vision problems at Houzz with cutting edge deep learning algorithms. When he’s not at work, he can be found spending time with his family, playing tennis or jogging.

When did you first discover computer science?
When I was a second grader, I joined my school’s computer club. We learned how to program with BASIC. I loved computers and have been programming ever since.

How did you get into deep learning?
I started my career as a software engineer, but really enjoyed doing research. So, I went back to school for my PhD at Stanford in Electrical Engineering, which led me to machine learning. I was a believer in deep neural networks early on when I worked on speech recognition several years ago. The improvement achieved in that area with deep neural networks was breathtaking. The same is also true for computer vision problems I am working on at Houzz now. This is really an exciting time for AI.

What is the best part about working at Houzz?
The best part is getting to work with many very smart and talented co-workers. Everyone at Houzz has a single-minded focus on creating products that give our users the best experience possible.

What do you enjoy most about your role at Houzz?
I enjoy doing research and getting to work on very interesting computer vision and machine learning problems at Houzz. I also enjoy the fact that whenever I make good progress, I get to see the impact on our users’ experience immediately.

What’s your favorite thing you’ve worked on at Houzz?
Visual Match - a tool that detects and classifies objects in photos on Houzz and finds visually similar products from the Houzz Marketplace. Deep learning is an area that’s advancing very fast. It’s really interesting and rewarding to put it to work to solve real problems at Houzz.

What’s something that has surprised you about working at Houzz?
The people at Houzz are so much fun to be around. People feel like close friends and family here. It may sound like a cliche, but it’s 100% true.

What do you do when you’re not working?
I spend a lot of time doing fun things with my two daughters. For the small amount of time I have for myself, I like playing tennis and jogging. I also enjoy traveling with my family.

How have you used Houzz at home?
Yes, that’s how I first got to know Houzz. My wife and I started a renovation in 2012 and were looking for professionals. We found our architect for the project on Houzz, then used it for ideas throughout the remodel of two bathrooms and a living area. Now, we’re using Houzz for an exterior update. Our house is an ongoing project.