
Why Instagram is so fast at uploading photos - daviday
http://speakerdeck.com/u/mikeyk/p/secrets-to-lightning-fast-mobile-design?slide=82
======
ot
Their motivation for speed is very well put:

"mobile experiences fill gaps while we wait. no one wants to wait while they
wait"

Awesome quote

~~~
tb
I absolutely agree. I now have an instinctive reaction to reach for my pocket
whenever I'm feeling the slightest bit impatient, and I have caught myself on
a couple of occasions reaching for my pocket when I already have my phone out,
because I'm waiting for a page to load in the mobile browser.

~~~
eridius
When I reboot my computer, I very often find myself trying to cmd-tab over
into Safari to browse the web while I wait for my computer to boot.

------
ambirex
A little devil's avocate: Isn't Instagram primarily a photo sharing app? I'm
not sure why people are complaining that it starts the upload on filter
completion.

My only question is how long are photos not marked as user initiated uploads
kept?

~~~
chollida1
To me this seems way offside.

What if I, a regular user, uses instagram for taking all my photos.

What if I take nude photos of my wife. Should I really expect instagram to
upload them without my permission?

I'm guessing 99% of people would not only be surprised by this behavior, but
also outraged.

~~~
dpcx
If you're taking nude photos of your wife with an app that is specifically
known for sharing photos, you're doing it wrong.

99% of people are probably very happy that their uploads don't take 5 minutes
once they hit save. To them, it's worth the privacy "risk".

~~~
jen_h
Is it a privacy risk at all, though? Instagram starts uploading after you
click the green check mark, which presumably says, "Hey, upload this for me,"
and continues uploading while you dilly-dally over the photo metadata sheet.

I'm a complete paranoid when it comes to privacy issues, and I don't see any
issue with an upload that starts after I click a green check mark that, to me,
means, "Hey, upload my photo, please!" There's the question of what happens to
the uploaded photo on their servers when you cancel at the metadata stage, for
sure, but that's a data retention question, not acquisition.

~~~
ineedtosleep
From what I've used of the Android app, there are enough warnings that notify
you that the photo is being uploaded.

After taking a photo with your camera (or selecting one that you have stored
locally), you get to a details page with a big button that says "UPLOAD" at
the top right. So assuming that one does take naked photos of oneself or
someone else, you'd have to confirm the upload. I only bring this up because
FTA, the iOS screenshots just say "Done".

Now, if Instagram does indeed upload before you press the big green "UPLOAD"
button, I'd say that's a breach in trust with the app.

------
skeletonjelly
So Instagram has photos I don't click "upload" on. Well that's nice to know.

Edit: So I tried to use a proxy on my phone but it looks like Instragram on
Android doesn't honour the wireless proxy server. Anyone else want to do some
digging?

~~~
avbor
On slide 89 it mentions that they delete the data if the user cancels it.

~~~
TazeTSchnitzel
And of course they do. They respect user choice and privacy. Whilst you can be
all tin-foil hat and think they are going to keep these "cancelled" photos, I
would seriously doubt it.

~~~
skeletonjelly
People also doubted that Facebook retained deleted profiles a number of years
ago. Is this an unhealthy opinion to form in an age of growing "cloud" data?

------
eli
I don't think that's playing dirty at all. I think it's quite clever.

------
jeffjose
Gmail used to do that with their attachment. You choose the attachment, and it
silently starts to upload. Most applications wait for you to hit "Send" to
start uploading.

~~~
jpk
It used to. It still does, but it used to, too.

~~~
raganwald
Thank you, Mitch Hedberg. Also, and strangely appropriate for an Instagram
thread:

 _One time, this guy handed me a picture of him, he said,"Here's a picture of
me when I was younger." Every picture is of you when you were younger. "Here's
a picture of me when I'm older." "You son-of-a-bitch! How'd you pull that off?
Lemme see that camera... what's it look like?“_

------
hk__2
Chrome does the same, when you right-clic on a file and select "Save as…", the
download begin in a temporary file, and then when you select the emplacement
where you want to put the new file, it moves the temporary file in it.

~~~
icebraining
Firefox does that too.

~~~
zobzu
Firefox.. since nightly 15 i think also does stuff like, when you go to the
search box, it open the connection to the http server before sending the
search request i believe chrome does it too

------
tomerv
I'm not an Instagram user, so I may be off base... but why not start uploading
the photo right when the user snapped it, i.e. before selecting a filter. Then
apply the selected filter server-side on the original photo. That way you save
a few more seconds while the user is selecting the filter.

~~~
leviathant
Image manipulation on a large scale is expensive. Leaving it up to the user's
device to run the image through filters eliminates server strain.

~~~
masklinn
Definitely the case especially since they were on Amazon, and thus had to pay
for EC2 minutes.

Now that they're at Facebook, server load shouldn't be a problem anymore
though. So they could implement that.

~~~
VeejayRampay
What about sending a video stream to the server and then when you hit the
button it just sends a timestamp that determines which frame to extract on the
server and delete the unneeded ones?

The future is going to be sweeeeeet.

~~~
masklinn
Problem there is quality of the image.

------
lucaspiller
Does anyone know what the sign up slide is about
([http://speakerdeck.com/u/mikeyk/p/secrets-to-lightning-
fast-...](http://speakerdeck.com/u/mikeyk/p/secrets-to-lightning-fast-mobile-
design?slide=82))? Do they create a user account when you hit the form, then
fill it in with your details asynchronously later?

~~~
maykelange
I think they're preloading the 'suggested' photos and data.

------
waveturtle
I assumed this was the case because the "time since" label on a freshly posted
photo is usually between 10-20 seconds, indicating they had my photo well
before I tapped "Done." I think it's a pretty genius little UX hack to make
the process feel quick.

------
ajross
The Google+ Android app does basically the same thing. It syncs everything
from your camera to the cloud (configurable, but I believe the default is to
sync always when on wifi), where you can choose to share them at your leisure.
It's actually really handy. My wife is routinely _not_ uploading cute kid
photos to Facebook from her iPhone because it's too much of an annoyance (or
because she doesn't want to compose the text to go with it). I can do it at my
desktop whenever the mood hits me.

~~~
yellowbkpk
It's important to mention that when you install the Google+ app one of the
configuration steps asks if you want to auto-upload your photos. You have
three options: "Upload over wifi only", "Upload over wifi and mobile", and
"Don't automatically upload". I believe the default is wifi-only.

You can turn it off later in the settings quite easily.

------
stcredzero
Everything he says is completely applicable to online games. Online games need
to be designed around responsiveness. Another way to put it: the online game
design should be pervasively focused on creating the illusion of low/no
latency.

An example in an online game I'm designing: damage and deaths are finalized
with a one second delay. This way, the clients can optimistically render ships
and combat effects, but everything is still verified/finalized on the server.

------
sikachu_
I found it brilliant first time I founded that out myself. It's more like
improving user's experience from their end.

------
veyron
Where in the TOS does it allow them to upload photos that the users don't
explicitly select?

~~~
guan
The user does explicitly either take the photo inside the Instagram app or
select it. Note that the final button that published the photo to the user’s
stream is labeled Done, not Upload. They don’t just arbitrarily upload photos
from the camera roll or from the camera before the user has tapped the camera
shutter button.

EDIT: And as others have pointed out, photos are only uploaded after the user
has selected a filter and tapped the green check mark, not as soon as they are
taken.

~~~
poglet
On the Android version it says Upload instead of Done. I can't tell what point
it starts uploading but it seems to appear pretty quick on my page.

------
r0s
I've always wondered why client side resizing isn't more popular, it would
give a major edge over any web upload.

~~~
devinfoley
I'm pretty sure they do client side resizing as well.

------
phil
This is such a great deck. Unless you're working on a photo sharing app, this
slide might offer more generally useful advice:

[http://speakerdeck.com/u/mikeyk/p/secrets-to-lightning-
fast-...](http://speakerdeck.com/u/mikeyk/p/secrets-to-lightning-fast-mobile-
design?slide=25)

------
bdittmer
I'm really surprised by the number of commenters who didn't figure this out
already?

~~~
darkstar999
Yes. Any other questions?

------
zobzu
FYI Google instant (which is integrated, at least in AOSP) or smth does the
same, by default. That is it uploads your pictures instantly to Google picture
thingy. You can turn it off thanksfully.

------
cskau
Doesn't that mean they actually start grabbing the photos before really
getting permission from the user?

Surely they probably got it covered in the Terms, but it still strikes me as
playing slightly dirty..

~~~
panacea
Playing the Devil's advocate (IANOCoder), but perhaps the bulk of the 1s&0s
are being uploaded and then decrypted by sending a small string when the user
selects "publish"?

Probably not.

~~~
eli
That's a little silly. How is trusting them to correctly implement an
encryption scheme terribly different from trusting them to responsibly delete
aborted photos in the first place?

------
phil
Did Instagram v1 had this feature?

They added high-res photos in v2 and the early upload seems like maybe an
attempt not to have the app start feeling much much slower.

------
MrKurtHaeusler
Surprised most are concerned on privacy grounds. My first thought was, wow
this could chew up many users monthly bandwidth quotas.

------
junto
I have just realised that Intagram have an abundance of phallus photos that
were never intended for upload!

------
joe-mccann
The iOS SDK I'm building at work ultimately does the same thing. Much better
UX.

------
togasystems
We used the same idea with video uploads.

------
j2labs
It's the little things...

------
jinushaun
I always suspected that.

------
jpkeisala
I though it was slow

------
hswolff
Why is Speakerdeck polluting my back history? :(

------
rogerchucker
I trust Instagram to not engage in monkey business with my data. Having said
that, this is flirting with the path-address-book kind of privacy-related
scrutiny. There has to be a way of telling the user at WHAT POINT the data has
started uploading. The progress bar of photo uploads has to mean what it shows
or else it is a plain and simple deception (even if it's in the name of
performance and user experience). I can't tell if this will erode trust though
but don't be surprised if a few make a loud noise about it.

Privacy concern and trust form a chicken-egg problem. I wish the Stanford-
esque brains behind these tech companies had a better grasp on it.

~~~
Aqua_Geek
> I trust Instagram to not engage in monkey business with my data.

Do you trust Facebook to the same extent?

~~~
rogerchucker
Actually yes I do trust them to the same extent. But that's a choice I have
made based on my perceived trust level. I am even OK with advertisers
harvesting my photos (not sure if that is possible yet). My main desired
privacy control is whether people that are not supposed to see my photos or
browse through my galleries, actually get to do that. That's not necessarily a
monkey business but an outcome of a privacy implementation flaw (assuming it
is unintentional). That will certainly have an impact on my trust level for
Facebook. The difference with instagram is that you go into instagram knowing
that everything is public and so is the general sharing norm on that platform.

------
bratsche
Seriously, why is this on hacker news? This is ridiculous. I'd downvote this
if we were on reddit. :)

