222: TZ Discussion – Getting Even on AnyFu

Justin and Jason talk about what’s happening with AnyFu, why Jason does a lot of stuff and how he gets it done, why Jason has soured on partnerships, how the Gmail interface kind of sucks, why Justin link spammed Jason, AdoptTogether – the Kickstarter for adoption, the Catalyst challenge / point system, methods of running Node.js in conjunction with Apache and PHP, managing long running Node.js processes using Upstart and Monit, the tradeoffs of different Linux distributions, some upcoming interviews,the latest underwhelming TL;DR serviceJason Calacanis’ Launch Ticker, the monitoring / validation service that Jason wrote for the Uber dispatching system, considerations when exercising startup options, why Jason wants the new Logitech Ultrathin iPad cover / keyboard, the research suggesting that stating your goals publicly will increase your likelihood of achieving them, and the controversy surrounding Derek Sivers’ claims on subject.

Executive Producer: Felix Leong

Thanks Felix! 🙂

  1. Jon says:

    I’m kind of humbled by how many projects (really cool projects!) you guys are always working on in addition to dayjob at Uber or consulting. Seriously, I’d be happy to be half as productive as either of you!

  2. Dave says:

    You might want to change the filename – it’s a bit of a clue as to the secret project!

  3. Pierre says:

    What you are trying to do is make node.js starts when your VPS Linux instance starts.

    This is done by the init system of linux called the SysV/Init script/system/framework. This is the core of a linux machine as it starts all the processes: apache, mail, network, mysql, …

    Experience has shown some flaws in this way of booting a linux systems: like not restarting a failed process for example. Lately other systems have been developped to replace this system and to provide more functionnality. Mainly we talk about: upstart (which is used by Ubuntu) and systemd (which is used by RedHat).

    So your VPS instance should either have the SysV/init or systemd as it runs CentOS a RedHat derivative. What is sure is that you are going to have a hell of a time replacing this by upstart. You will need to install upstart (configuring/compiling/installing), configure linux to run upstart instead of SysV at boot and migrate the existing daemon like apache, mysql, etc. to be started by upstart.

    An easier way is to create a SysV/init script that will start your node.js process and install it on the system. This way your process is automatically started when your VPS boots.

    You may copy an existing scripts and tweak it for your use case. They are under /etc/init.d if you are using SysV.

    To restart your node.js process in case it crashes, there should be no need for that. A proper system running as a daemon should never crash. It is a problem of node.js if it crashes.

    No system is perfect and it may be a good idea to restart your process automatically on crash. For this, you could write a script that starts your process and if it exits, it gets restarted. This is just wrapping a WHILE loop around starting your process.

    It is just a start as for a robust, state of the art system, it may not be a good idea to always restart your process. Maybe 5 times at most per minute…

    Here monit may help

    I am also sure that you know about http://stackoverflow.com/questions/4018154/node-js-as-a-background-service and particularly the approved answer.

    Good luck with your project !

  4. random internet person says:

    Hey Jason,

    You seem to be attracting a bit of internet “criticism” lately. I have zero experience with this, so as a random person on the internet I am 100% qualified to comment.

    Basically, you should just take it as a compliment. It’s probably because of a combination of: (1) You do start and get a lot of things done, which makes people who don’t insecure. (2) Listening to the show we get excited and frustrated with you and then (ironically) take it out on you. (3) Some people don’t know how not to be mean in text.

    We evolved over millions of years to deal with other (relatively) smart hairless apes in groups of ten or so. Bonding by catching fish and making pottery, fighting off evil hairless apes and sitting around talking (or grunting) to each other in person. I’m sure settling down in villages was confusing. We’re still recovering from that time we all had to move to the city and get jobs. That was just a few generations ago. The fish and pottery with 4 of your cousins part went on for hundreds of thousands of years. Big chunks of our psyche and even our culture come from those times. Did you know that the story of Noah (or some version of the Flood Myth) dates back at least to the beginning of written history. It could very well be tens of thousands of years old. Some pieces of culture so old that our brains have had time to evolve to them.

    Now we are interacting with these two guys on the other side of the world by plugging a pair of headphones into a magic rock with bluetooth while using a big complicated contraption that lets us run up a hill without using a hill. They’re saying stuff and a part of our brain is following. Another part of our brain thinks we must be chasing an antelope and a third part is trying to figure out how to talk back to the guys in the magic bluetooth rock. It disagrees with the voice or it just wants to participate but it can’t see the source of the voice and it can’t argue with it. All it can do is write a trollish comment or email.

    Sometimes the result is a nasty comment. It’s a malfunction. Our brain isn’t built for this. It isn’t a reflection of anything real.

    random internet person

  5. Justin says:

    @Dave – That’s not the secret, we’ve been talking about that company for ages 🙂

  6. A few comments, all to be interpreted in the nicest possible tone 🙂

    AppIgnite: I wouldn’t go so far as to say whether Jason finished AppIgnite or not
    doesn’t affect anyone but himself and his family. Even if I only speak for
    myself, I’ve learnt a lot from everything Jason has shared with regards to
    AppIgnite, right up to (and including) your decision to step away from it. So
    thanks! They always say you learn from your failures, I think in this instance a
    lot of techzing listeners will have learnt with you.

    The amount of stuff you both get through is very inspiring, don’t let the haters
    get you down.

    Partnerships: I found it interesting to hear Jason’s distaste for partnerships,
    a lot of the overhead he described parallels with the reasons Rob Walling doesn’t
    want to take Jason’s investment offers 🙂

    Site Design: Just bite the bullet and buy a wordpress theme from themeforest or
    something. Not an amazing custom design, but would probably take an hour to
    install and configure, and will help the site look much better in the mean time.

    Catalyst: How about CORS for the cross origin stuff? I’ve done a little with it
    before, don’t recall having any trouble

  7. I think the site design is just fine. The important thing is the consistent flow of content, good job!

  8. Stanislaw Pitucha says:

    I came to say what Pierre mostly already did – please don’t go the crazy route of compiling upstart on CentOS.

    What you really need to do is take care of two situations: service crashing (should restart immediately), service hangs (process doesn’t crash, but doesn’t handle requests – restart as soon as detected). The first one can be handled by any new init-like system – upstart, systemd, supervisord, daemontools, etc. Older sysv/init will allow you to start the process during bootup, but will not make sure it’s running all the time.

    For the restart-on-crash situation you don’t actually need more than what new distributions already provide. This is usually what people recommend monit for, but it’s not necessary. Upstart will restart service automatically if you use the “respawn” option. Systemd will do that for “Restart=on-abort”. Supervisord will do that by default. Use whatever your system provides you from the start.

    For the restart-on-hang, monit can be useful. It can also notify you by email / some other means that the service is misbehaving. Just remember that this action will always lag behind the service failure, so it’s not so good for actually reacting to crashes. This article has more info regarding “don’t start programs, run programs” approach. http://dustin.github.com/2010/02/28/running-processes.html

    And good luck with any projects – started, finished, failed, successful, … There are always going to be haters, especially on the internet. Please don’t let them turn this podcast into a drama hour of explaining your decisions to anonymous internet trolls. 🙂

  9. I almost commented a week or two ago about how Jason needs to focus, but I’m glad I didn’t pile it on. Rob Walling has many projects, but he seems to invest his time and energy exclusively in one at a time until it becomes stable enough to outsource. I am guilty of trying to wear too many hats, and would hate to see you guys make the same mistake. We just want what’s best for both of you. It’s great to hear that AnyFu is off of high center.

  10. Jason says:

    @Jon – Thanks! We’re certainly trying. 😉

  11. Jian says:

    Thanks for the show, I’ve been listening to it for quite some time now.

    Wondering when the next episode will be available? I hope you guys are getting even now so you could still move forward 😉

    Thanks again.

  12. As far as getting things done, I think that you guys are so close to it that it’s easy to forget to ask- compared to what?… Elon Musk? You guys sound like tech superheroes to me. Add that Jason has 3 kids! I’m completely overwhelmed just thinking about what you guys get done week to week.
    I wanted to say too, that it’s probably Jason’s passionate approach to all he does do that keeps me coming back. I can appreciate a show like Rob and Mike’s, but it’s getting harder for me to listen to, when it’s so obviously about making money (only). I definitely can relate to having to build a foundation of income, but beyond that, there’s so many problems to solve out there that could change the world. (adoptTogether.org, is a good example)
    About the issues around sharing equity, I wonder if you’ve run across Noam Wasserman (The Founder’s Dilemmas) http://ecorner.stanford.edu/authorMaterialInfo.html?mid=3026 He’s combed through thousands of startup examples and has some amazing data. He talks about formulating a partnership as, if > then statements. He’d make a great interview.

  13. Jason says:

    @John Humphrey – First of all, thanks so much for the kind words! 🙂 I completely agree that the discussions of revenue and profit too often eclipse the other important and worthy motivations for writing software and creating companies, so it’s always worth taking a step back and asking yourself why you’re doing these things.

    You’re right, we should try to get Noam Wasserman on the show! That would make for a great interview.

  14. Jason says:

    @random internet person – Thanks, random internet person. 😉