Hello there!

My name's Mark Dhillon, & I'm an engineer.

C.V., GitHub, & LinkedIn.

ReviewSage 3/04/15

TL;DR Raised $$ for app after graduating, here's a demo.

In my final semester before completing a Computer Science Master's degree @ UW Madison, I took a course taught by Professors Remzi Arpaci-Dusseau and Paul Barford on Software Entrepreneurship.

The purpose of the course was to examine processes and case studies to transform ideas into successful businesses, as well as to create a working prototype of an idea and present it at the end of the course.

At the time, I had been focusing on mining information from text (through work with Professor Michael Gleicher) and trying to visualize the data with D3. That work, combined with the class project lead me to create ReviewSage.

ReviewSage was made to harness the wisdom trapped in Yelp reviews, quickly.

I worked on hard on the prototype, and my efforts were rewarded with a rare opportunity: Great Oaks Venture Capital was willing to provide me with some seed funding to develop ReviewSage into a business.

You can play around with a representative version here, or watch the animation to get the gist.

The live app demonstrates what ReviewSage was originally intended for: giving consumers quick answers about Yelp reviews. After submitting a URL, ReviewSage looks for commonly used phrases and shows you the spread of ratings when people use those phrases.

At the time, I was preparing to join a start-up somewhere in CA. Then I got a message from Professor Barford saying that I could start my own.

Getting $$ to start a business around my idea was too tempting to pass up.

After incorporating the business, I decided to position it as a B2B app: businesses could use my software to keep up with their online presence. That seemed like a good idea at the time.

In the end, it didn't work out. However, I'm very pleased with the experience I gained from taking on such a challenge. I spent 1.5 years chasing this dream, and I think I came out ahead.

I was able to take a project that I cared about and raise seed funding to start a business. I received a lot of great guidance from my Professors, as well as Andy Boszhardt and John Philosophos from Great Oaks.

I was able to hire an engineer to work with me, and his experience helped him secure a job at a premier start-up in Madison now. I was able to get the largest restaurant group in Madison to become a beta tester and eventually a paying customer, and also raised a subsequent round. ReviewSage even got some local press.

Things don't always work out the way you hope. But that's ok; life's too short to dwell on the past. The future? Now that's exciting.

Expense Logging 1/15/15

I recently found out about interact.js and came away very impressed. You might even say that my mind was blown.

It's a fantastic Javascript libary which takes away a lot all of the pain for drag-and-drop, resizing, and multi-touch gestures (all with inertia) for browsers over IE8. That's huge!

In the endless debate over developing web vs native, interact.js is a panacea for web apps to support gestures and touch-screen interactions.

Most of the time when I see a new library spring up, I'll leave it open in a tab or maybe even bookmark it to check later (if it seems cool, of course). Not this time. This time I wanted to start using the new hotness right away.

I had just come out of my first start-up (relatively) unscathed, and as a consequence of that experience I was regularly tracking my expenses to see where my money was going.

Along the way, I kicked around ideas about what I'd like to see from an expense tracking app, and once I saw interact.js, I decided to make it happen. You can see a gif of the finished product on this page, or play around with it yourself.

The app uses localStorage to keep track of what you've entered after you close it, and also supports generating an email of your data in CSV form. That means any data you enter lives on your device alone, but supports exporting if you feel so inclined.

I ended up using a few different gestures from interact.js:

  • Double-tapping to minimize a new expense so it can dragged to the proper account.
  • Dragging a new expense into the proper account.
  • Pressing and holding a new expense to toggle between showing a place to describe the transaction (e.g. 'Coffee')
I'd recommend interact.js for anybody wanting to integrate gestures for a web-app.

The examples and API documentation are all solid; it only took me a couple hours to get the gestures that I wanted working consistently.

Since it's a relatively new library, there's not a whole lot of answers online if something doesn't work as expected. Sometimes though, it's nice not having Stack Overflow as a crutch.

Gary Busey clips + Twitter 1/13/15

Gary Busey is an accomplished actor, and also seems to be a funny guy. I haven't kept up with any of his later career, beyond knowing that he's done some reality TV shows and sells "Busey-isms" online.

I have, however, seen him act in quite a few movies, and I'm pretty sure that I enjoyed his roles. Point Break, Black Sheep…those are all good in my book. His recent TV commericals for Amazon also make me laugh a lot.

One day, I decided to look up clips of his movie roles on YouTube. It turns out that there are a lot of them, and the prevailing reason for that seems to be that the uploaders find these clips hilarious, weird, or both.

So there are a bunch of goofy clips available on the internet, and Twitter is a thing so...yes, that's right. Let's make a Twitter bot to spread the Gospel of Gary (Busey).

BuseyBot is a Django app using tweepy. At different times of day, it looks for folks talking about Gary Busey and sends one of them a juicy Busey movie clip.