
Not Hotdog App - rcamp
https://itunes.apple.com/us/app/not-hotdog/id1212457521?mt=8
======
timanglade
Ha didn't expect this to end up here. If anyone is interested, I'm working on
a blogpost explaining how we built the app in detail… It uses embedded
TensorFlow on device (better availability, better speed, better privacy, $0
cost), with a custom neural net inspired by last month's MobileNets paper,
built & trained with Keras. It was loads of fun to build :)

~~~
bitmapbrother
Is there a reason you didn't release on Android? The app was even demoed on a
Pixel.

~~~
pkulak
It was written in Objective C?

~~~
timanglade
It's actually written in React Native with a fair bit of C++ (TensorFlow), and
some Objective-C++ to glue the two. One cool thing we added on top of React
Native was a hack to let us inject new versions of our deep learning model on
the fly without going through an App Store review. If you thought injecting
JavaScript to change the behavior of your app was cool, you need to try
injecting neural nets, it's quite a feeling :D

~~~
tomduncalf
This looks great, haha! Shame I can't access it from the UK.

It would be really interesting to read more about your thoughts on working
with RN and C++ and perhaps how you did some of it. I'm currently doing the
same (but with a C++ audio engine rather than image processing stuff) and I
think it's an incredibly powerful combination - but I do feel like I'm making
up some interop patterns as I go and there might be better ways, so would love
to hear how other people use it!

Broadly, I've created a "repository" singleton that stores a reference to both
the React Native module instance (which gets set when I call its setup method
from JS) and the C++ main class instance (which gets set when it starts up),
so they can get a handle on each other (I bet there are better ways to do
this, but I'm new to C++/ObjC and couldn't work out a better way to get a
reference to the RN module).

I'm then using RCT_EXPORT_METHOD to provide hooks for JS to call into C++ via
an ObjC bridge (in an RCT_EXPORT_MODULE class), and using the event emitter to
communicate back to JS (so the C++ can get the RN module instance from the
singleton and call methods which emit events).

I've not done anything that really pushes the bridge performance to a point
where I've seen any noticeable latency/slow down caused by the interop - have
you had any issues here?

Like I say, I'm finding a really cool way to build apps that need the power of
native code but still with the ease of RN as the GUI and some logic, and I
actually quite like the separation it enforces with the communication
boundary.

~~~
timanglade
Sounds like you're further ahead than I was with the React Native part! Not
Hotdog is very simple so I just wrote a simple Native module around my
TensorFlow code and let the chips fall where they may performance-wise. The
snap/analyze/display sequence is slow enough that I don't need to worry about
fps or anything like that. As much as I enjoyed using RN for this app, I would
probably move to native code if I needed to be able to tune performance.

~~~
1zee
Can you explain to a noob how you wrote the Native module around TensorFlow?
My main area of focus is in python, but I feel hindered when I think I'm ready
to start developing for mobile apps. I'm looking into RN, but still not sure
how that plays with TF and other python modules.

~~~
timanglade
It was honestly just maybe 10 lines of code, but I was very confused about it
before I got it done. The message passing is a bit counterintuitive at first.
I'll try to share example code in my blogpost!

~~~
1zee
awesome, what's your blog?

------
alexcnwy
For anyone keen to learn more about object detection (and deep learning in
general), I just finished working through an excellent free MOOC taught by
Jeremy Howard (former chief scientist at Kaggle) - you basically learn how to
fine-tune a convolutional neural network with your own data (e.g. hotdog vs
not hotdog) in lesson 2!

[http://course.fast.ai/lessons/lesson2.html](http://course.fast.ai/lessons/lesson2.html)

~~~
timanglade
I can't recommend that course enough! I attended it in person and got a lot
out of it. Jeremy & Rachel were also enormously kind & helpful outside of
class.

~~~
alexcnwy
Ah so jealous! How was part 2?

------
davb
I always find it strange when apps like this are made unavailable in certain
countries (in this case, the UK).

Video, I understand. From a consumer perspective it's crappy, but I do
understand that licensing agreements for video are generally geographically
restricted. But an app that goes along with a TV show? I can't see Sky (the UK
network broadcasting Silicon Valley and most other HBO shows right now)
distributing Not Hotdog.

It would be fun to play with it while the novelty is still fresh.

~~~
an_account
My guess is they don't want to put in the lawyer work to figure out if they
can. I imagine HBO has to heavily vet things like this, unlike small startups.

------
malanj
Craziest thing - it works! Just detected a hotdog (off a photo). Machine
learning has really come far, that this can be done for a joke app is really
cool.

------
avaer
Hm, is this an officially licensed HBO marketing stunt? Or does SeeFood
Technologies Inc. actually exist as a corporation?

If not, I'm curious what the legal ramifications are of doing business as a
corporation that does not exist.

~~~
throwaway76543
The term you're looking for is "Fictitious Business Name," or "Trade Name."

Generally, the legal ramifications are a requirement to register the name and
pay a small fee. In Santa Clara it costs $40 to register a fictitious business
name with the county and the registration is good for five years:
[https://www.sccgov.org/sites/rec/Fictitious%20Business%20Nam...](https://www.sccgov.org/sites/rec/Fictitious%20Business%20Names/Pages/Fictitious-
Business-Name-Filings.aspx)

It's really not a big deal.

~~~
avaer
Thank you, that's a pleasant surprise! Cheap and painless enough that it makes
me want to try my hand at an ARG with fake corporations.

------
DannyBee
I'm still sad they weren't allowed to release the fully functional bro app
that got created.

~~~
joshu
I am a consultant for the show. I actually saw it!

~~~
DannyBee
Yeah, same here :) It was actually pretty well done.

------
tripzilch
Hail Eris! This app may be very useful to Discordians, because of the Original
Snub and the Five Commandmends of the Pentabarf:
[http://www.principiadiscordia.com/book/11.php](http://www.principiadiscordia.com/book/11.php)

------
elmigranto
US only, welcome to the "global system of interconnected computer networks".
Hope Richard's P2P-internet will work better :)

~~~
timanglade
Yup sorry about that, the app is available only in the US (& Canada) due to
some legal restrictions we couldn't avoid. FWIW I also worked about on
Richard's New Internet concept for this season so I definitely hear ya ;)

~~~
ominous
Can you please enlighten us as to what kind of legal restrictions apply here?
It is always interesting to see how these «little» legal details get in the
way of running software.

Congrats for getting the app out!

~~~
0x0
Could it be that the app is using HTTPS? iTunesConnect has all these crazy
questions with very little guidance about encryption and export compliance if
you say you do use HTTPS.

~~~
ascorbic
Guys, we have HTTPS in the rest of the world now!

But seriously, the iTunes connect question specifically excludes stuff like
HTTPS using the regular libraries, which is just as well as otherwise pretty
much every app would be affected. Legal issue is probably boring IP rights
stuff.

~~~
0x0
It's not that easy. Even the first question in iTunesConnect explicitly states
you must answer "yes" even if you just make use of the built-in HTTPS
libraries in the OS. If you start digging into the various guidelines you open
a can of worms of recursive cross-references between documents and sections.
Nowhere have I seen a statement that says "if you just use os HTTPS, you don't
have to do anything". At the very least you may have to consider if you have
to submit various annual self-classification reports.

For an app like this I could easily see a serious company deciding to skip the
hassle and CYA, instead of potentially taking on a huge legal risk. Would you,
as a regular worker-bee developer, be OK with personally signing off and
accepting a legal risk on behalf of a large company without involving
expensive lawyers to evaluate the validity of your opinion on this legalese?
Would that be a responsible action to take?

------
gregdoesit
Is there a reason this is not released globally, but only in the US? I am not
on the US App Store, so cannot see this app.

------
IgorPartola
I had an idea for an app that would tell you if what you are about to eat is
helthful or not. Basically all it has to do is determine the ratio of green to
brown color. Obviously it would not really work (purple carrots, spaghetti
squash), but would be a nice novelty thing nonetheless.

------
FilterSweep
I wonder if it's able to tell the difference between hot dogs and well-shaven,
tanned legs.

------
dozeone
Make available in Norway stores please! I want to be able to know what I am
eating...

------
geekme
Will it be released world wide

~~~
anderscarling
I second this, world wide release would be nice. It's a shame how many "locale
neutral" apps end up walled in on the US app store.

Is there any specific reason why this happens, just seems to me like you get
worse reach and no benefits? Especially for a marketing stunt like this.

~~~
knd775
Crypto export restrictions, I believe

------
goatherders
My faith in the internet is restored. Well done.

------
ziikutv
DANM! I wanted to start learning NN and write an app after watching the
Silicon Valley episode. You beat me to it. Congrats.

------
jgtrosh
Why wasn't it called "Hotdog or Not" ? to avoid copyright infringement ?

~~~
lalalalagrr
They own the copyright.

------
bitmapbrother
Jian Yang was demoing the app on a Pixel. Looks like Apple negotiated another
exclusivity deal ;)

------
ruleabidinguser
Thought a hamburger was a hotdog btw

------
tyingq
I hear UploadVR loves it and is considering an acquihire.

------
daveloyall
This is related to a TV show.

Maybe this comment thread could use a link to a video clip of the show.

Maybe this comment thread could use a link to a video clip of the app in use,
since it doesn't work on most devices.

