What kind of details do you think go into this rating? My guess: how long driver waits for you to get in the car, how drunk and annoying you are, how much you tip (do they see this before rating?), how profitable your ride is.
I suspect most drivers, like most passengers, give a 5.0 to almost everyone, but dock points for being a dick. It just seems there's no other way to differentiate passengers, since they'll be paying the fee regardless.
For what it's worth, drivers with a rating of less than 4.3 or so are booted from the service.
I've heard of people in my city having trouble and getting a driver to accept, most probably due to him having a low rating (whereas I never have trouble finding a driver)
Low ratings are not the only reason that could happen. Uber drivers run businesses. They are not universal service taxis (which often flout the universal service rule, to be true).
Your request for service includes several non-price elements to it, one of which is your perceived likelihood to be a hassle (and reflected in your star rating), one is the amount of unpaid travel required to get to you, and one is what the driver perceives as likely to be your destination. All else being equal, drivers would prefer to end up in portions of the city with a high density of quality fares (say, an airport, the startup district(s) in SF, etc) as opposed to portions of the city with a low density of quality fares (say, the outer edge of the service area).
If drivers make a habit out of taking "bad" trips, their Uber business gets meaningfully less lucrative. Accordingly, expect them to actively avoid "bad" trips. If one's travel patterns routinely result in drivers perceiving you to require "bad" trips, one is going to have a far different experience with Uber relative to a high-frequency no-hassle business traveler.
Ah my mistake. I haven't used Uber in a while but seemed to remember a screen where you can optionally increase gratuity. I guess I'm confusing it with the Square interface. Who can keep up nowadays...
This is a lot easier than the Charles MITM proxy I used to intercept the Uber iPhone API calls to determine mine. I feel kind of silly now that I didnt bother checking the web API.
I also made a web scraper to get my uber trip details (incl. route driven), save it to JSON and map the trips all at once. http://i.imgur.com/Q1W59rD.jpg. Here's a quick dump of the code https://github.com/joshhunt/uber. It's pretty rough and it makes a lot of assumptions (e.g. metric system and AUD). I never really plan on looking at it again, so your milage may vary.
I also found their API structure to be quite unusual: They make a call to something like `api.uber.com/` with POST data of something like
and you'll recieve a response back of something like
{
responseData: {
username: 'madeofpalk'
...rest of requested data...
},
vehicles: [
...list of all vehicles and their locations...
]
...other data that wasnt explicitly requested but comes through with every request...
}
I had never seen this pattern before, and thought it was quite unusual (especially for a 'new hip startup' that uses Python and Node.js). Anyone care to comment on why they may have choosen something like this?
Here's a quick dump of the code https://github.com/joshhunt/uber. It's pretty rough and it makes a lot of assumptions (e.g. metric system and AUD). I never really plan on looking at it again, so your milage may vary.
doesn't seem that strange to me. in the old SOAP days it was easier to run everything through a set of filters and just have what server code specified by a field.
in this case it is pretty clear they sped up requests by returning some generic data every request needed to update the app all at once as well. that's a pretty common requirement. netflix even allows client code to upload server code to pack responses into the least number
What I thought was strange is that we're not in the 'old SOAP days' any more.
I get what they wanted to do - speed things up by including common data in every request, and avoid state in apps. What I found strange was the way they solved it, esp. given they're (apparently) using Python and Node.js - writing a middleware to insert the common data would be far easier than implementing their own routing layer or whatever they've done.
Of course I'm making a lot of assumptions about what kind of stack exactly they're using (assuming they're using a web framework that we've heard of)
I did a similar hack in an app I wrote where I basically always wanted/needed a fresh copy of a user's account data. Literally halved the number of API calls necessary in early versions of the app. Now the gain is maybe 30% but the code is a lot cleaner regardless.
Ah awesome thanks! Didn't cross my mind to link to the commit's line number. Still, have to agree with some commenters about having the link go to it by default.
If, as another commenter mentioned, they want every request to update all the data in an app, this is quite an elegant pattern.
They don't have to modify any of their restful APIs to fetch or serialize more data than intended. Instead, the / endpoint might act as a wrapper, which does three things:
1. gets the entire app state
2. makes an internal API call of its own (proxies the one from the request)
This pattern is standard within SOA (Service Oriented Architecture).
You have two classes of services:
1. Technical Services
2. Business Services
The technical services may be REST, SOAP, etc. These deal with the nuts and bolts of: update this one thing, fetch a load of these things (where they are the same thing).
The business services are usually some flavour of RPC JSON or XML, and only occasionally are REST (think of a resource that is actually a composite of other resources, it's usually a business service).
The business service wraps the underlying technical service with the orchestration of which granular services to call, and returns something useful to the user (the client, in this case an app which is also made by the company).
What you quoted was the result of a business service, but you can imagine that behind that are services that individually fetch vehicles, user info, etc. The business service is just wrapping it and doing a useful thing for the user by returning the composite.
It should be noted, there's an idea of a "service catalog". Some people think this is wholly comprised of the business services, but actually it's the superset of both business and technical services. You might have 2 catalogs, one external and one internal... but both are made up of a mix of business and technical services. The goal is simple: Help users to get shit done. In the scenario given, "get shit done" means "perform multiple calls, and because it's mobile and calls are expensive return everything in one call".
The window.Uber variable has a lot of interesting information, like "isAdmin," data about the last vehicle I rode in (interior color, exterior color, model year, capacity), last driver's phone number, "activeExperiments" which I assume are multivariate tests being run against me, etc
I've only had a few rides and ive 4.9 (ie someone didnt rate me 5.0). Meh.
Then again, I don't feel bad rating drivers because they sell me a service, I'm rating that (it wouldnt even have to include their name - it probably shouldn't. then again I'm european, we seem to have slightly different ethics).
I feel bad that they rate us because we don't provide them with anything.
That rating is going to be saved, sold and shared eventually.
Not necessarily. Drivers rating the passenger is a defence against passengers rating the drivers low, and also a way for Uber to keep quality standards high by stopping 'bad' passengers from using the service.
It's not a low rating that triggers a reciprocal low rating. But an obnoxious and fussy person who gives out low ratings should be discounted if in turn multiple drivers have given him/her low ratings (for being obnoxious).
Just like any other marketplace transaction, we the buyers do provide the suppliers (drivers) with value. Equal value, of course.
Much of that value is automated in the form of our credit card details in our Uber app. But we do provide value in a few other forms: not being obnoxious, not trashing/puking in their car, not harassing them physically or verbally.
All these things happen to taxi and Uber drivers regularly, so there IS a need to keep the demand-side riders in check. It's analogous to eBay or AirBnB's two-sided rating systems.
Also, it's not fair to state as fact that our consumer buyer ratings will be "saved, sold and shared eventually." If Uber were a free consumer app with an unclear revenue source, that'd almost certainly be the case. But Uber isn't in the business of needing to sell that data. On the contrary, any marketplace data they hold is competitive advantage over other driver/rider services. They have at least some incentive to keep that proprietary.
Both people in a transaction value the thing they have less than the thing the other person is offering, otherwise there's no reason to bother making the transaction.
every company eventually goes to the dark side and does something like that, unless it dies before and then nobody knows if the data is gone or not. I'm not sure how its unfair. Pretty sure their 10000 lines clauses will indicate something saying they own all this data, including your location data, etc and reserve to use whatever they want with it.
also at the minimum they should make clear the passenger (you) is going to be rated IMO. Maybe that'd solve the issue of passengers not being courteous or whatever.
I feel bad that they rate us because we don't provide them with anything.
In rough order of importance to drivers:
1) Not causing damage to their vehicles.
2) Giving good enough directions on pickup such that they waste a minimum of (unpaid) time getting to you, and exiting the car in an expeditious manner. An Uber driver's KPI is "number of minutes per day with the car in motion with a passenger in it." (This is the biggest reason why many of them keep multiple phones with multiple apps open -- minimizing time between trips maximizes the number of trips they take per day and, thus, revenue.)
3) Not contravening the usual covenants of civil society.
I'm not a driver, but I know enough about Uber to answer this...
Drivers are prompted to rate their passenger immeditely after the trip, in the exact same manner as riders rate their driver. Then, when a trip is offered to a driver, they're shown the potential customers rating (and other details), then the driver will choose to accept the job or not
I ask a lot of questions:
The Uber training, apparently, is that driver's should only ever rate their customers a 5, or a 1. That's it. A customer is either great and a 5, or an asshat and a 1.
I don't know who told you that, because that's not what I was told. I drive for Uber, and there aren't specific 'codes' for ratings.
On lyft, on the other hand, 5 means good, 4 means needs work, 3 means "don't match us up again" and 2 and 1 mean "recommend deactivation", 1 means "dangerous".
I spoke with a driver yesterday about it and he says he will basically pick up anyone above a 4. This was in NY so might mean different things in different places and to different people.
it's actually really hard to tell what the passenger rating is. It only flashes on the screen momentarily. Lyft, on the other hand shows it up until you pick up the passenger. This is helpful, one time I called a passenger as a courtesy and got a really really belligerent tone, and i noticed his passenger rating was really low, and so I told him, "sorry, not worth the effort".
At the very least, if you're like most users who rate between 4 and 5, you can most likely tell if the driver rated you a 5 (rating goes up) or below a 5 (rating goes down). It would take a pretty strange algorithm to violate that. Of course, this only helps if your rating changes at all
While this is likely to work much of the time, it wouldn't take a particularly strange algorithm to break it. Consider an average rating that is just the arithmetic mean of your last 10 rides. Your rating going up would just mean your most recent rating was better than the rating 11 rides ago that it displaced. If you got a 2 11 rides ago and a 3 on your last ride, your average rating would go up despite getting a below-average rating.
Sure. But to clarify, it seems like for most people, the ratings they receive consist of mostly 5s, with rare outliers (anecdotally in this thread, it seems most ratings are >= 4.5 and most are ~4.8). In that case, the odds of one outlier pushing another outside the moving average window is pretty low.
I don't get why Uber doesn't tell me the exterior color of UberX cars coming to pick me up. I have no idea what a "Nissan Versa" is; knowing it's a blue minivan would be helpful.
there are but it is very rare and comes with drastically limited eye sight anyways.
Red/Green confusion is quite common though, there are estimates of up to 8% of ("western") males. Definitely a number to consider if you want your whatever to cater as many people on the market as possible.
The commoner kinds of red/green colorblindness, though, are by no means absolute. Most red/green colorblind men can tell highly saturated reds and greens apart -- they only have difficulty with low-saturation refs and greens.
> there are but it is very rare and comes with drastically limited eye sight anyways.
As one of those very rare individuals you allude to (see everything in greyscale), you should be aware that my eyesight (and many people with a similar condition to me) is "limited" but not to the point where i can't cross the street or need to use a screen reader.
Having said that, even for me knowing the colour would be useful even if I can't exactly distinguish it (e.g. I'm waiting for a white station wagon, its definitely not that black hatchback that slowed down in front of me)
Displaying the license plate number is less useful when the car is across the street or approaching from a distance.
I also had a fun "gypsy black car running uber app trying to extort me" experience in NYC last trip, and a bunch of black cars who took 15-20 minutes to arrive (despite initially saying "3 minutes" and showing as around the corner). In a few cases I had the driver call me and give me useless directions to where he was, so I cancelled the trip and booked another Uber, and got someone dramatically better.
The black cars in NYC with an iPhone on the dashboard running the Uber app aren't necessarily getting 100% of their fairs via Uber. If they see you as a potential client, they'll still try to pick you up off-network.
If you already hailed an Uber, an unscrupulous driver may potentially tell you "Yeah, I'm from Uber". Although I'm not sure how they'd convince you to pay cash.
I was at W NY finishing my talk for HOPE X with my cospeaker; we were speaking at 2300h Friday so we took an Uber Black from the W to the Hotel Penn around 2100h. An Uber came within 2min of us calling it, approximately the right time, and we were a bit distracted. Walked over to the town car displaying the U logo, and I don't recall exactly, but somehow "You're Marc, right?" got exchanged, and we got in.
The driver was confused about "Hotel Pennsylvania", which was funny since it is a huge hotel, but he said there was a smaller Penn Hotel or something nearby which he thought we'd meant.
We got closer to the location, but still maybe halfway, and Marc got a call from the real Uber driver asking where the fuck he was. He pointed out we'd gotten into the Uber already, and it was clear it was the wrong Uber; we assumed it was just someone else's Uber by mistake. That's happened a few times before in high-volume locations, including one where the 2 cars were from the same livery company in SF and had off-by-one license plates (ours got stolen by someone else); Uber deals with this pretty gracefully for all concerned.
We pointed this out to the driver. Told him to start the meter now, as a new ride (which we'd request); this would be approximately the correct fare, and I was going to give the guy $5-10 extra in cash to be nice. (The whole trip was approximately minimum-uber-black fare distance anyway.)
He acted like he was trying, and failed; we then got to the location, and he demanded cash. We pushed back (the whole reason for using uber is not to deal with cash, and expense reimbursement), but said if he'd give us a receipt, that would be fine. He refused. This went on a little.
I got out of the car to go inside at this point, assuming Marc would deal with it; I was mostly trying to make sure we got our speaker badges before the desk closed. I wish I'd stayed to film the resulting interaction, in retrospect.
After this, the guy actually locked the doors, got out, and then went to my friend's door. He threatened to cut him. (I'm not sure on the details; this is secondhand.) He unlocked it, my friend got out. He's a ~350+ pound ex-bouncer from Manchester, and head of security for Defcon. The driver is a ~120 pound south asian gentleman. Words were exchanged very briefly; the driver gave up and left, unpaid.
I tweeted to @ubernyc, then per their request mailed support, and they replied, but proceeded to do fuck all, as far as I can tell.
We failed as security professionals for not getting dox on the car or driver, but we were pretty distracted. I would have been really upset had this happened to someone who could have felt physically threatened by the driver.
Uber needs some superior authentication system for drivers; btle or wifi or flashing indicators on the phones themselves would be nice. Ultrasonic tones on microphone/speaker might work.
I'm used to fearing kidnapping and extortion by drivers (Middle East, Thailand, etc.), but not so much in NYC.
> Uber needs some superior authentication system for drivers; btle or wifi or flashing indicators on the phones themselves would be nice. Ultrasonic tones on microphone/speaker might work.
> I'm used to fearing kidnapping and extortion by drivers (Middle East, Thailand, etc.), but not so much in NYC.
Or just better education on the lo-fi authentication you're supposed to use: have the driver ask for your name. 'Are you rdl?'
The problem is if it's not computer-driven, people who are drunk/distracted/etc. will bypass it. It needs to be automatic but overrideable, but obvious to the user when he overrides it, vs. merely omitted.
> Long term this will become a lot more popular both for drivers as well as for customers as they can both get more money.
As time goes on, it would be hard trying to find the right drivers though, and having to pay cash. If only there was a service that married you with drivers through a smartphone app...
Lyft provides you a picture of the Vehicle and the driver. It really improves the customer experience - I'm always interested in who my next driver will be - and choose lyft just because of this feature.
I don't really understand the need for pictures of drivers, personally (except maybe as a means of authentication/identification, but once you go past race/sex/age/etc., I'm really bad at IDing people from faces); I judge people based on a lot of things, but generally not things visible in photos. I'd probably judge someone as a driver based on type of car and condition of car more than anything else; DMV driving record, whether the person is local, etc. would be even more desirable.
Zipcar names its vehicles, though - if you only have five candidate cars (in a somewhat large 'Ziphome'), having a name is better than having a vehicle type + color as there are sometimes similar looking vehicles next to each other.
In the US market every Zipcar has its name on the back to make identifying them easier, and if you're using the iPhone app you can see the license plate as well as details about the make and model.
Currently you can't tell the colour from the mobile app but it's a good idea. I've passed it along to the mobile team to see if it's feasible.
Please do this, it frustrates me to no end because I see a photo of a blue Audi and think I should be looking for a blue Audi but instead it's red. Pictures would be great but even just showing the color in the app is fine, as I can never find the color without going to the website.
We'll look into it. It's slightly trickier than it could be because that database field is completely free-form, so looking up an image from it or translating it is harder than it needs to be. Thanks for the input though, I've passed it along :)
I'm used to riding Lyft which uses a real picture of the vehicle. Last night, I was waiting for what I "thought" would be a red Hyundai and the driver had to yell to me before I realized that it was the car I was expecting.
I somehow have a 4, the lowest in this thread (that I've seen so far). I wonder what I did, I generally try to be polite to the drivers and I rarely use the service, so I suspect I got one extremely poor rating? I can't imagine when though.
Anyway, looks like you can go and pull the token out of the page and just do
to check it programmatically. Could be interesting to have a service detect somehow that you'd just finished a ride and show you the new score (and possibly the change, etc)
Well the whole "tipping" mindset leads to that. It's supposed to be something extra, beyond what's required. Now they've started using it instead of having realistic prices and wages and developed social standards where tipping less than x% is supposed to be the signal (x ever increasing). The idea has gotten so ingrained that people tip on "tip-included" prices too. Soon it'll all be a "donation" with a "service charge", de facto mandatory "tip", and extra tips on top.
* Compliment their car or music
* Ask them about themselves (how are you doing, where are you from, how long have you been driving)
* Make small talk (how about this crazy weather/traffic/drunk people, do you have any weird stories, have you ever been to place xyz)
* Tell them a little about yourself or where you just came from/are going to
* Have the address of your destination or tell the driver how to get there
* Leave a tip for efficient service
* Don't throw up in the back seat
Precisely what I don't like about Lyft and the competing services. They don't stop talking. It's almost like they're instructed to be overly chatty. Silence isn't always bad at 8 in the morning when I'm trying to check email and communicate with work.
This is what is great about competition. You can pick the service that you like the most, as opposed to taxis that are all the same.
What you don't like about Lyft, is what I love about them. Their drivers seem to consider me a human being rather than a fare. So I always take Lyft as a default and fall back to Uber if they're not available, and taxis as a last resort.
Lyft is absolutely instructed to be chatty. Along with the fistbumps, passengers defaulting to the front seat, and the pink moustaches, it's very much part of the experience they offer.
Personally, I enjoy talking with my drivers most of the time. If I want a quiet, professional ride in the back of a lincoln towncar, I opt for Uber Black.
I always thought part of the point of Uber was not having to deal with cash and tips. I've never left a tip for my driver, and never really had an opportunity to as it's all paid for by your credit card on file.
However, I do most of the rest (never really thought of complementing anyone's car, they pretty much all run together to me), and have a 4.9. I never even thought about making smalltalk as a way to get your driver to rate you better; it's just a nice thing to do when you're getting a ride from someone.
One of the interesting things I've noticed about Uber is how diverse the drivers are. I've gotten (at least) Russian, Kurdish, Moroccan, and Nigerian drivers, so that's led to some interesting conversations about where they're from and what it's like. From the conversations, Morocco sounds like the best place to go visit; the guy from Morocco waxes the most poetic about his homeland.
Morocco sure could use Uber. Most taxi drivers refused to use the meter with tourists, because the meter rates are so low (like $1-2) and tourists would gladly pay double or triple. The standard advice is not to take a cab that won't run the meter, but good luck finding one in the competitive areas like train stations. All the drivers know they are better off if they collaboratively rip off tourists.
I guess soon enough Chef's and restaurant's will be rating customers as well. In restaurant's there would be cutoff points for being a customer. You didn't pay enough tips in the last restaurant you were a part of - you are now bared from getting into a good restaurant now.
Joking above but the whole concept of dual rating scares me a bit .......
I guess soon enough Chef's and restaurant's will be rating customers as well.
Tyler Cowen extensively discusses the potential future of symmetrical ratings in Average is Over. The book is too complex to summarize here but it is worth reading.
Restaurants already keep notes on their customers and refer to them whenever you call or make a reservation online. If you're a less-than-ideal customer, they won't do something as overt as refuse service (unless you did something truly horrible last time you were in), but they might be more likely to squeeze you in for a last-minute seating during a busy time if you've got some good things about you in the notes.
Maybe some restaurants. Not the one I worked at. And unless they share them in some kind of city-wide (or international) database, it's not the same effect as uber refusing to have you as a customer any more.
I don't get why this is included in the window.Uber pingData. It seems as though your rating is something that isn't necessary and shouldn't be surfaced client-side.
Anyone have some insight into why this data is there in the first place? Is this an accidental leak, some sort of optimization or something else?
No reason to hide it until it becomes a problem. I suspect now that someone's gone to the trouble to surface it, they'll patch it out, but really, it doesn't matter if a tiny percentage of uber-users know what their score is.
It's an optimization for their developers. They probably don't want to write a bunch of "if user.driver?"'s in their API responses, so just return all the data all the time and let their clients decide what to show.
I wonder if Lyft shares something similar via their API as well.
`curl -H "Authorization: fbAccessToken <fb access token>" https://api.lyft.com/users/<lyft user id>` provides some basic profile, credit card, location and referral information but nothing about ratings. The lyft user ID can be obtained by logging in at www.lyft.com/login and viewing the source.
My twitter stream is now full of people, some of whom I am sure do not have the skill to evaluate if something is a JavaScript security threat or not, who have copied and pasted a random script they read on the internet into the developer console. Granted, this one is pretty simple and easier to evaluate than most, but still… you really get why Facebook hacked the console to warn people not to do that.
Exactly this. I didn't know this was such a big secret. In one of the rides, I happened to be in an Uber that I had taken before and the driver remarked "Hey! you have dropped down from 5 to 4.9". And I exactly remember that just a few days before I shared a ride with a friend , and he was being a dick to the driver unnecessarily.
196 comments
[ 12.9 ms ] story [ 711 ms ] threadI suspect most drivers, like most passengers, give a 5.0 to almost everyone, but dock points for being a dick. It just seems there's no other way to differentiate passengers, since they'll be paying the fee regardless.
This is not very scientific. I got 4.8 which means absolutely nothing to me.
I've heard of people in my city having trouble and getting a driver to accept, most probably due to him having a low rating (whereas I never have trouble finding a driver)
Your request for service includes several non-price elements to it, one of which is your perceived likelihood to be a hassle (and reflected in your star rating), one is the amount of unpaid travel required to get to you, and one is what the driver perceives as likely to be your destination. All else being equal, drivers would prefer to end up in portions of the city with a high density of quality fares (say, an airport, the startup district(s) in SF, etc) as opposed to portions of the city with a low density of quality fares (say, the outer edge of the service area).
If drivers make a habit out of taking "bad" trips, their Uber business gets meaningfully less lucrative. Accordingly, expect them to actively avoid "bad" trips. If one's travel patterns routinely result in drivers perceiving you to require "bad" trips, one is going to have a far different experience with Uber relative to a high-frequency no-hassle business traveler.
If I knew why somebody rated me below 5 that would be a different story.
You don't tip with Uber - 'gratuity' is already included. Regardless, the rate-the-customer screen is seen immediately after stopping the trip
I also made a web scraper to get my uber trip details (incl. route driven), save it to JSON and map the trips all at once. http://i.imgur.com/Q1W59rD.jpg. Here's a quick dump of the code https://github.com/joshhunt/uber. It's pretty rough and it makes a lot of assumptions (e.g. metric system and AUD). I never really plan on looking at it again, so your milage may vary.
I also found their API structure to be quite unusual: They make a call to something like `api.uber.com/` with POST data of something like
and you'll recieve a response back of something like I had never seen this pattern before, and thought it was quite unusual (especially for a 'new hip startup' that uses Python and Node.js). Anyone care to comment on why they may have choosen something like this?in this case it is pretty clear they sped up requests by returning some generic data every request needed to update the app all at once as well. that's a pretty common requirement. netflix even allows client code to upload server code to pack responses into the least number
What I thought was strange is that we're not in the 'old SOAP days' any more.
I get what they wanted to do - speed things up by including common data in every request, and avoid state in apps. What I found strange was the way they solved it, esp. given they're (apparently) using Python and Node.js - writing a middleware to insert the common data would be far easier than implementing their own routing layer or whatever they've done.
Of course I'm making a lot of assumptions about what kind of stack exactly they're using (assuming they're using a web framework that we've heard of)
Some of this is remainders from when they just had consultants working on this. Look at hash_password() at client.py :)
That's so... what? Is the API not https? If they wanted to avoid even knowing the password, then why not use something standard like SRP (https://en.wikipedia.org/wiki/Secure_Remote_Password_protoco...)?
That animated GIF with the CLI session is very cool, by the way.
(Well, it's not really relevant but you reminded me of it ^_^)
Addendum: This is awful! (Uber's hashing, not the github code in question)
They don't have to modify any of their restful APIs to fetch or serialize more data than intended. Instead, the / endpoint might act as a wrapper, which does three things:
1. gets the entire app state
2. makes an internal API call of its own (proxies the one from the request)
3. merges the two results and returns them
You have two classes of services:
1. Technical Services
2. Business Services
The technical services may be REST, SOAP, etc. These deal with the nuts and bolts of: update this one thing, fetch a load of these things (where they are the same thing).
The business services are usually some flavour of RPC JSON or XML, and only occasionally are REST (think of a resource that is actually a composite of other resources, it's usually a business service).
The business service wraps the underlying technical service with the orchestration of which granular services to call, and returns something useful to the user (the client, in this case an app which is also made by the company).
What you quoted was the result of a business service, but you can imagine that behind that are services that individually fetch vehicles, user info, etc. The business service is just wrapping it and doing a useful thing for the user by returning the composite.
It should be noted, there's an idea of a "service catalog". Some people think this is wholly comprised of the business services, but actually it's the superset of both business and technical services. You might have 2 catalogs, one external and one internal... but both are made up of a mix of business and technical services. The goal is simple: Help users to get shit done. In the scenario given, "get shit done" means "perform multiple calls, and because it's mobile and calls are expensive return everything in one call".
They'll use lat/long to determine if the user is in China or not and then pull up google maps or baidu.
Beautify this (https://d1a3f4spazzrp4.cloudfront.net/web-mobile-client/js/m...) then check out line 13185 for loadMap (Map loading resources on # 13094)
They also create a gorgeous map "blur" effect when the user is ready to pull the trigger on a ride: http://snag.gy/rlBYX.jpg
Then again, I don't feel bad rating drivers because they sell me a service, I'm rating that (it wouldnt even have to include their name - it probably shouldn't. then again I'm european, we seem to have slightly different ethics).
I feel bad that they rate us because we don't provide them with anything.
That rating is going to be saved, sold and shared eventually.
I don't see how this it the case, assuming that drivers don't know what passengers rated them before rating the passenger.
Much of that value is automated in the form of our credit card details in our Uber app. But we do provide value in a few other forms: not being obnoxious, not trashing/puking in their car, not harassing them physically or verbally.
All these things happen to taxi and Uber drivers regularly, so there IS a need to keep the demand-side riders in check. It's analogous to eBay or AirBnB's two-sided rating systems.
Also, it's not fair to state as fact that our consumer buyer ratings will be "saved, sold and shared eventually." If Uber were a free consumer app with an unclear revenue source, that'd almost certainly be the case. But Uber isn't in the business of needing to sell that data. On the contrary, any marketplace data they hold is competitive advantage over other driver/rider services. They have at least some incentive to keep that proprietary.
Both people in a transaction value the thing they have less than the thing the other person is offering, otherwise there's no reason to bother making the transaction.
At least, in theory.
also at the minimum they should make clear the passenger (you) is going to be rated IMO. Maybe that'd solve the issue of passengers not being courteous or whatever.
You provide them with the "I didn't vomit in your car" service.
In rough order of importance to drivers:
1) Not causing damage to their vehicles.
2) Giving good enough directions on pickup such that they waste a minimum of (unpaid) time getting to you, and exiting the car in an expeditious manner. An Uber driver's KPI is "number of minutes per day with the car in motion with a passenger in it." (This is the biggest reason why many of them keep multiple phones with multiple apps open -- minimizing time between trips maximizes the number of trips they take per day and, thus, revenue.)
3) Not contravening the usual covenants of civil society.
Drivers are prompted to rate their passenger immeditely after the trip, in the exact same manner as riders rate their driver. Then, when a trip is offered to a driver, they're shown the potential customers rating (and other details), then the driver will choose to accept the job or not
On lyft, on the other hand, 5 means good, 4 means needs work, 3 means "don't match us up again" and 2 and 1 mean "recommend deactivation", 1 means "dangerous".
I think we should also disable voice calls. Some people are deaf.
I don't think anyone's literally living in greyscale.
Red/Green confusion is quite common though, there are estimates of up to 8% of ("western") males. Definitely a number to consider if you want your whatever to cater as many people on the market as possible.
As one of those very rare individuals you allude to (see everything in greyscale), you should be aware that my eyesight (and many people with a similar condition to me) is "limited" but not to the point where i can't cross the street or need to use a screen reader.
Having said that, even for me knowing the colour would be useful even if I can't exactly distinguish it (e.g. I'm waiting for a white station wagon, its definitely not that black hatchback that slowed down in front of me)
I also had a fun "gypsy black car running uber app trying to extort me" experience in NYC last trip, and a bunch of black cars who took 15-20 minutes to arrive (despite initially saying "3 minutes" and showing as around the corner). In a few cases I had the driver call me and give me useless directions to where he was, so I cancelled the trip and booked another Uber, and got someone dramatically better.
I apparently have a 4.6 rating.
Given that Uber apparently drops drivers that get below a 4.5 or something, I wouldn't expect much trouble from them...
The black cars in NYC with an iPhone on the dashboard running the Uber app aren't necessarily getting 100% of their fairs via Uber. If they see you as a potential client, they'll still try to pick you up off-network.
If you already hailed an Uber, an unscrupulous driver may potentially tell you "Yeah, I'm from Uber". Although I'm not sure how they'd convince you to pay cash.
The driver was confused about "Hotel Pennsylvania", which was funny since it is a huge hotel, but he said there was a smaller Penn Hotel or something nearby which he thought we'd meant.
We got closer to the location, but still maybe halfway, and Marc got a call from the real Uber driver asking where the fuck he was. He pointed out we'd gotten into the Uber already, and it was clear it was the wrong Uber; we assumed it was just someone else's Uber by mistake. That's happened a few times before in high-volume locations, including one where the 2 cars were from the same livery company in SF and had off-by-one license plates (ours got stolen by someone else); Uber deals with this pretty gracefully for all concerned.
We pointed this out to the driver. Told him to start the meter now, as a new ride (which we'd request); this would be approximately the correct fare, and I was going to give the guy $5-10 extra in cash to be nice. (The whole trip was approximately minimum-uber-black fare distance anyway.)
He acted like he was trying, and failed; we then got to the location, and he demanded cash. We pushed back (the whole reason for using uber is not to deal with cash, and expense reimbursement), but said if he'd give us a receipt, that would be fine. He refused. This went on a little.
I got out of the car to go inside at this point, assuming Marc would deal with it; I was mostly trying to make sure we got our speaker badges before the desk closed. I wish I'd stayed to film the resulting interaction, in retrospect.
After this, the guy actually locked the doors, got out, and then went to my friend's door. He threatened to cut him. (I'm not sure on the details; this is secondhand.) He unlocked it, my friend got out. He's a ~350+ pound ex-bouncer from Manchester, and head of security for Defcon. The driver is a ~120 pound south asian gentleman. Words were exchanged very briefly; the driver gave up and left, unpaid.
I tweeted to @ubernyc, then per their request mailed support, and they replied, but proceeded to do fuck all, as far as I can tell.
We failed as security professionals for not getting dox on the car or driver, but we were pretty distracted. I would have been really upset had this happened to someone who could have felt physically threatened by the driver.
Uber needs some superior authentication system for drivers; btle or wifi or flashing indicators on the phones themselves would be nice. Ultrasonic tones on microphone/speaker might work.
I'm used to fearing kidnapping and extortion by drivers (Middle East, Thailand, etc.), but not so much in NYC.
Or just better education on the lo-fi authentication you're supposed to use: have the driver ask for your name. 'Are you rdl?'
I am not sure the word gentleman means what you think it means ;)
As time goes on, it would be hard trying to find the right drivers though, and having to pay cash. If only there was a service that married you with drivers through a smartphone app...
They should definitely not be showing an image with the wrong color, but having the information is better than nothing.
Currently you can't tell the colour from the mobile app but it's a good idea. I've passed it along to the mobile team to see if it's feasible.
(Disclosure: I work for Zipcar)
Anyway, looks like you can go and pull the token out of the page and just do
curl https://m.uber.com/cn --data '{"messageType":"PingClient","token":"xxxxx","app":"client"}' | jq .client.ratin
to check it programmatically. Could be interesting to have a service detect somehow that you'd just finished a ride and show you the new score (and possibly the change, etc)
I've used Uber only once - to help my mom to a doctor's appointment after she broke her hip.
I guess we were slow and a bit of a burden . . .
What you don't like about Lyft, is what I love about them. Their drivers seem to consider me a human being rather than a fare. So I always take Lyft as a default and fall back to Uber if they're not available, and taxis as a last resort.
Personally, I enjoy talking with my drivers most of the time. If I want a quiet, professional ride in the back of a lincoln towncar, I opt for Uber Black.
However, I do most of the rest (never really thought of complementing anyone's car, they pretty much all run together to me), and have a 4.9. I never even thought about making smalltalk as a way to get your driver to rate you better; it's just a nice thing to do when you're getting a ride from someone.
One of the interesting things I've noticed about Uber is how diverse the drivers are. I've gotten (at least) Russian, Kurdish, Moroccan, and Nigerian drivers, so that's led to some interesting conversations about where they're from and what it's like. From the conversations, Morocco sounds like the best place to go visit; the guy from Morocco waxes the most poetic about his homeland.
Maybe for guys, sure. You can find many stories like this one: http://www.neverendingfootsteps.com/2013/12/02/travelling-mo...
Joking above but the whole concept of dual rating scares me a bit .......
This would be really cool.
Tyler Cowen extensively discusses the potential future of symmetrical ratings in Average is Over. The book is too complex to summarize here but it is worth reading.
Anyone have some insight into why this data is there in the first place? Is this an accidental leak, some sort of optimization or something else?
It's an optimization for their developers. They probably don't want to write a bunch of "if user.driver?"'s in their API responses, so just return all the data all the time and let their clients decide what to show.
Probably careless API design.
`curl -H "Authorization: fbAccessToken <fb access token>" https://api.lyft.com/users/<lyft user id>` provides some basic profile, credit card, location and referral information but nothing about ratings. The lyft user ID can be obtained by logging in at www.lyft.com/login and viewing the source.
edit: This tweet said exactly what I was thinking when I saw all of this. https://twitter.com/s_m_i/status/493609377958723584
"Also this uber thing shows folks will copy and paste commands they don’t understand without a second thought if the incentives are right"
I use uber multiple time per week and have for years. So I guess I'm not an asshole.