tag:jdorfman.posthaven.com,2013:/posts #!/bin/jdorfman 2017-11-27T16:54:36Z Justin Dorfman tag:jdorfman.posthaven.com,2013:Post/713367 2014-07-12T21:03:29Z 2014-07-27T16:26:40Z Why Vegas NEEDS Uber

I’ve been at the airport for the last 20 minutes and I’m still shaking from the cab ride from downtown Vegas to LAS. When my friend and co-worker (who lives in Vegas) told me there was no Uber, I was kind of shocked. But I figured, “Hey, they have more taxis than they know what to do with so I didn't need to rent a car. I can just get a cab.”  

When I arrived last Sunday I went straight to the taxi line and got a cab from the airport fairly quickly. The cab was clean, air conditioned and the driver was a really nice guy.  

During my stay I didn't need a cab since I was downtown. Everything I needed was within walking distance. When I did need a ride, my friends would pick me up and drive us to a coworking space where we would, well you know, work. The week went by like a blur and we got a lot done. Overall, a successful business trip in Sin City.  

What could possibly go wrong on the trip back to the airport, or trips around Vegas?

How about taxi service with wildly fluctuating rates for the same distance, taxi lines that take forever to navigate (and that only valets can “magically” expedite) and varying levels of driver pleasantness and car cleanliness? And if you do ultimately have a problem, no real recourse?

Let me back up to give you some background — last night (Friday) I wanted to get out of DTLV for a few hours and meet up with a good friend of mine who happened to be in Vegas. He was staying at the Southpoint Hotel and Casino, which was 13.3 miles away.  

When I arrived, the price of the fare including tip came out to $50 and change, or about $3.50 per mile. It seemed like a lot to me, but I couldn't really complain. I got from point A to point B without any hassles.

After playing Texas Hold 'Em for a few hours, I headed back downtown. I went to the taxi line and waited. And waited. And waited. After 10 minutes I was getting antsy and vented on Twitter.

Another seven minutes goes by and still no taxi in sight. Not to mention there were two people in line ahead of me. So I called a cab. I found a service with 3 stars and lucky me and someone picked up immediately! I told them where I was and they replied, "Sorry sir, we can't send a cab to hotels. You need to just wait until they arrive."

WTF? 

I hung up the phone and walked over to the valet station and asked if he could call us some cabs, since there were multiple parties waiting. He got on the phone and made a call; three SUV taxis magically arrived before he hung up.  

When I got into the cab, the driver was a jolly guy all around. There’s not a lot of traffic at 2 am, so he got me back to downtown Vegas quickly. This time the fare was $15 dollars cheaper, which was cool.

I woke up this morning, packed my shit and went to the valet to get a cab to the airport.  The car that came looked really beat up but I really didn't care. The inside is what counts (for me anyway).  

I got in, and the first thing I saw was a beer bottle.  Kind of gross but hey, it's Vegas! I start to roll down the window before we left because the car was balls hot. Why? The AC wasn't running. But hey… it’s Vegas?

The guy turned around and asked, "Where you headed?" I told him, "Airport, please," and we were on our way. That’s when I noticed what I’d literally gotten myself into.

I looked around in the cab and I was disgusted. I’ll let these pictures do the talking:

Now comes the best part. We arrive at the airport, I gave him my credit card and he said, "This is a cash only taxi.” I thought he was kidding because he was smiling...then I realized he wasn't kidding.

“How am I suppose to pay you?" I asked. He replied, avoiding the question: "I can give you a receipt."

What?

Clearly he saw that I had some cash (thank you poker gods!). I give him the $30.50 and got the hell out as quickly as I could.

Now, before you start making assumptions — such as that I work for Uber (I don't, I'm just a loyal customer and brand advocate) — hear me out:

  • I know this is a first world problem, but I live in a first world country and uberX is how I get around in Los Angeles when I can't take public transportation.

  • I am not rich by any means. I work hard and make enough money to expect a good customer experience and good customer service. I have had a bad experience with Uber. But when I gave a negative review, they quickly gave me a service credit and stated the driver was new to the area (DTLA is full of one way streets) and the ride was on them. This was unexpected, and I didn’t expect anything from them.

  • I have nothing against the taxi industry. In LA they are actually innovating the cab ride experience to keep Uber and others from taking over their market share. If uberX is not available, I just open up TaxiMagic and have an uberX-like experience. But there’s no alternatives in Vegas.

So what the hell is your problem princess?

The problem is that I don't have a choice. The Nevada Taxicab Authority can get away with pretty much whatever they want.

Got a complaint? Don't worry, you can call customer service, wait on hold and leave a message that will most likely not get returned. Bottom line: there is no accountability or competition to change anything.

So why does Vegas need Uber?

If you don't know, the city of Las Vegas is not doing too well. While Las Vegas ranked No. 3 in employment growth in the first quarter of this year, it's still 6 percent below the city’s total number of peak jobs. Will allowing Uber to operate in Nevada increase job growth? Maybe a little, but it still won't be a silver bullet by any means.

I strongly believe that Vegas needs Uber is because their economy primarily relies on tourists to spend money on gaming and entertainment. While Tony Hsieh has done amazing things to help revitalize downtown Las Vegas, the casinos and the strip are what fuels the local economy. Six out of the ten largest employers in Nevada are casinos, while the other four are government jobs. (There’s nothing wrong with that. I’m just stating the facts.)

If their economy heavily relies on tourist spending money on entertainment and gaming, and if they have a shitty experience getting from place to place, why would they come back? There are other places in the country, and the world, that have legal gaming. You know like Atlantic City…

I am probably in a very small minority of tourists who knows or cares what Uber is or does. However, I won't be visiting Vegas unless I need to for business. I don't find any pleasure in having a shitty experience and I avoid them at all cost.

Uber doesn't need Vegas, Vegas NEEDS Uber.

P.S. I optimized the images the best I could with ImageOptim but since they are on S3 and not a CDN they might load slow.  

]]>
Justin Dorfman
tag:jdorfman.posthaven.com,2013:Post/589000 2013-07-15T16:36:38Z 2017-11-27T16:54:36Z Great Status Page Designs

Transparency is key in the web service industry.  That is why most respectable services have status.domain.com.  Here are a couple of companies that go beyond a simple page:

Heroku:

GitHub:

Mandrill:

MailChimp:

What did I miss?  Let me know on Twitter.

]]>
Justin Dorfman
tag:jdorfman.posthaven.com,2013:Post/359298 2013-06-13T23:00:00Z 2013-10-08T16:38:40Z 5 bash shortcuts I use on the reg

I have already showed you my genpasswd function. Here are 5 more shortcuts (functions/aliases) I use daily:

checkgzip

Allows you to quickly check whether a file is Gzipped.

Code:

function checkgzip { curl -sI -H 'Accept-Encoding: gzip,deflate' $1 |grep Content-Encoding --color; }

Usage:

$ checkgzip http://www.maxcdn.com/wp-content/themes/maxcdn/js/libs/modernizr.min.js
Content-Encoding: gzip

l (lower case L)

This will allow you to view new files in a directory placing old files at the top and new files on the bottom.

Code:

alias l="ls -alhtr"

Usage:

$ l
-rw-r--r--   1 jdorfman  wheel     72k Jun  10 18:05 3.log
-rw-r--r--   1 jdorfman  wheel     10k Jun  11 13:06 2.log
-rw-r--r--   1 jdorfman  wheel     34k Jun  12 16:06 1.log

sec2 (ssh EC2)

Allows you to ssh to your EC2 instance.

Code:

function sec2 () { ssh ec2-user@ec2-00-000-0-000.compute-1.amazonaws.com -i ~/.ssh/ec2.pem; }

Usage:

$ sec2
Welcome to Ubuntu 12.10 (GNU/Linux 3.5.0-17-generic i686)
Last login: Wed Jun 12 05:10:26 2013 from foo.bar.com
jdorfman@micro:~$

jpp (json pretty print)

Make ugly JSON pretty.

Code:

alias jpp="python -m json.tool" 

Usage (Before):

$ cat foo.json

{"id":"2","user_id":"1","name":"testing","type":"bouldering","picture":null,"lat":"36","long":"81","alt":"41932","accuracy":"53","thumbnail":null}

Usage (After):

$ cat foo.json |jpp
{
    "accuracy": "53",
    "alt": "41932",
    "id": "2",
    "lat": "36",
    "long": "81",
    "name": "testing",
    "picture": null,
    "thumbnail": null,
    "type": "bouldering",
    "user_id": "1"
}

gs (git status)

Quickly view the status of your git repo.

Code:

alias gs="git status"

Usage:

jdorfman@air:~/github/bootstrap-cdn$ gs
# On branch 2.3.2
nothing to commit (working directory clean)



Enjoy.  I got more...

]]>
Justin Dorfman
tag:jdorfman.posthaven.com,2013:Post/582548 2013-06-04T17:58:01Z 2013-10-08T17:26:05Z No, Thank You

I had an open call with Chad Whitacre last Friday and he asked me "How can I make the Gittip experience better for you?" (as a corporate patron).  At the time I was under the impression that users on Gittip where informed who was giving to them.  So my answer was basically nothing the service is perfect.  It wasn't until I talked to my friend Nick after the call that I realized this wasn't the case.  He had no idea who was giving him $24 a week.

I then sent an email to Chad and attached the conversation (with Nick's permission) and I believe that is what prompted this tweet:

The responses have been mixed.  Both sides bring up good points, but I will make my case here since Twitter only allows 140 characters at a time. So here it is:

The reason the company I work for allows me to spend tip $200+ dollars a week is because we get it.  We understand the sacrifice open source developers/contributors give everyday to make sure billions of people can enjoy their favorite web services such as Facebook, Twitter, Netflix, Youtube, Instagram, etc.  We also understand that we are able to build a profitable business that can compete with 800 pound gorillas on commodity hardware and FOSS.  As a test, I decided to show the world who we donate to.  I got great responses and a lot of "thank you's" e.g.:

No, Thank You. Thank you John for putting blood, sweat and tears into jQuery.  Thank you Mark and Jacob for spending nights (after your day job) and weekends working on Bootstrap. Thank you Chad for creating a simple, open platform where individuals and organizations can give small weekly cash gifts to people we love, are inspired by and give back to the FOSS community.  Last but not least thank You.  Yes, you reading this right now.  I am sure you have made some contribution to an open source project, so thanks.

In closing I would recommend every company who uses open source software to get on Gittip and give back to those who allow you to run your business. 

]]>
Justin Dorfman
tag:jdorfman.posthaven.com,2013:Post/579631 2013-05-18T17:57:17Z 2014-04-10T16:27:24Z medium_bitcoin-660x493.jpg - CDN vs S3

As I said in my last post: S3 is NOT a CDN.  It is an amazing Simple Storage Service, not a Simple Delivery Service.  

Via AWS:

Amazon S3 is storage for the Internet. It is designed to make web-scale computing easier for developers.

In this post I am going to show you why PostHaven (and Vine for that matter) should switch to a CDN.  I am going to use a service called Catchpoint that will measure the performance of this 61kb image: medium_bitcoin-660x493.jpg (view on S3  | view on CDN) from a post Garry wrote about Bitcoins.  Lets take a look after an hour of testing with a check frequency of 5 minutes hitting 7 different points of presence:


Note: Throughput (higher is better): The numerical representation of how efficiently the system was able to retrieve the element in KBps. Throughput is calculated as (File Size + Header Size) / (1st Byte + Load Time).

Chart Summary

PostHaven MaxCDN
# Runs Avg DNS (ms) Avg Connect (ms) Avg Time To First Byte (ms) Avg Response (ms) Avg Throughput Avg Webpage Response (ms) % Availability
82.00 38.32 6.49 51.07 70.88 6,103.92 70.88 100.00
 
PostHaven S3
# Runs Avg DNS (ms) Avg Connect (ms) Avg Time To First Byte (ms) Avg Response (ms) Avg Throughput Avg Webpage Response (ms) % Availability
82.00 122.30 70.16 396.29 592.55 361.18 592.55 100.00

* The following metric name prefix SD, Avg, GM and Mdn stand for Standard Deviation, Average, Geometric Mean and Median respectively.

Download the full Performance Data as a CSV

Take Away

Whether PostHaven goes with our CDN or with another provider, I just hope anyone reading this takes this away: Do not use S3 as a CDN, it is not designed for that.  You are wasting money and your users time.

Oh and have a great weekend everyone. =)
]]>
Justin Dorfman
tag:jdorfman.posthaven.com,2013:Post/579546 2013-05-18T00:34:19Z 2013-10-08T17:25:28Z Hey Garry, I created a pull zone for you.

I think S3 is a great origin server for static assets, but it is NOT a CDN.  When you click "Upload Media" in PostHaven it stores the media in an S3 bucket: phaven-prod.s3.amazonaws.com which is great, but it isn't good for delivery.  Not only is it slower but it is way more expen$ive.  

So here it is Garry, your very own pull zone for phhaven-prod: http://phaven-prod.posthaven.netdna-cdn.com all you need to do is switch it with phaven-prod.s3.amazonaws.com.  If you need SSL, I will get it for you Monday.

BTW: The first 10TB's are on us.

See it works!

curl -I http://phaven-prod.posthaven.netdna-cdn.com/uploads%2F2013-05-17%2F20%2F3128%2FErQE0vKlNMIeNvaxbneY75nWyy4%2Fs3ul27%2Fposthaven-loves-maxcdn.png

HTTP/1.1 200 OK
Date: Sat, 18 May 2013 00:50:41 GMT
Content-Type: binary/octet-stream
Content-Length: 52958
Connection: keep-alive
x-amz-id-2: NO6o51/19JsQJN9YHc+T/sraZSGNT+f3R+1GWl2QL3aD4SubqazjbMURb4VYaZyS
x-amz-request-id: E640348D2D6EDA7B
Last-Modified: Sat, 18 May 2013 00:47:10 GMT
ETag: "f95534e9752b560f4acdda20228f90ba"
Server: NetDNA-cache/2.2
X-Cache: HIT
Accept-Ranges: bytes
]]>
Justin Dorfman
tag:jdorfman.posthaven.com,2013:Post/358054 2013-04-08T18:49:55Z 2015-07-14T08:53:41Z Easy password generator using bash on Mac OS X

Prerequisites:

  • homebrew
  • .bashrc/.bash_profile 
  • OS X 10.8+

Install

$ brew install pwgen

Configure

$ vim ~/.bash_profile

# Paste the following function
genpasswd() {
    pwgen -Bs $1 1 |pbcopy |pbpaste; echo "Has been copied to clipboard"
}

Usage

$ genpasswd 25
VyxjFrRnoFkAP7bpAzRKB2t4k
Has been copied to clipboard
]]>
Justin Dorfman