221: TZ Discussion – Everything.com

Justin and Jason discuss Justin’s important meeting in Chicago, why SQL is agilehow FriendFeed used MySQL to store schema-less data and when normalized data will hurt you, Justin’s experience with Uber, how Jason works with the Uber engineering team as an off-site contractor and how they scaled the Node.js-based dispatching system, Gabriel Weinberg’s thoughts on orders of magnitude, how Justin is working with Udi on Digedu and why they chose the new PHP framework Laravel, why Jason wrote a RESTful API for Catalyst in PHP and why he thinks building web apps in Node.js is usually more trouble than it’s worth, the upcoming Catalyst point system, the possibility of creating a WordPress pluggin for Pluggio, Philippe Monnet’s article on creating mobile apps with KnockOutJS, PhoneGap & jQuery Mobile, how Jason bought an Arduino at the local Radio Shack and while there heard about a local hardware super hacker who built a long distance surveillance microphone, the difference between Raspberry Pi and Arduinohow a judge dismissed a dealers’ lawsuit against Tesla’s retail stores, why Jason thinks Hacker News needs a prerequisite reading list, why Justin is worried that we’re all getting stuck in our own social media silos, why you should pay attention to power law distributions and why you should look for things you can scale.

  1. Ignacio says:

    Good episode, you might have missed that link for the jquery mobile + phonegap.

  2. Quick one: I don’t think Taylor Otwell, Laravel creator, is French – http://laravel.com/about

  3. Jason says:

    @Ignacio – Sorry about that. Here’s the link: http://blog.monnet-usa.com/?p=420

    I’ll also insert it into the show description.

  4. Justin says:

    @Ignacio – Oops! Apologies. @ Dave – Good catch, my bad. Not sure why I thought that perhaps because of symfony and also lavarel sounds kinda french 😉

  5. Stanislaw Pitucha says:

    Since you mentioned the power consumption of arduino / r-pi, here are some numbers (disregarding the huge difference in processing power): You can power r-pi using somewhere between 2.5W and 3.5W apparently.

    On the other hand you can power the usual ATmega chip which drives the arduino using ~0.5W when it’s active. And around 10 times less when it’s idle. Even better – if you have some final device plan that you want to produce instead of running on a development board, you may be able to scale down to using ATtiny chips which draw below 30uA in the idle mode, (just waiting for hardware interrupts).

    In practice that means you can run an ATtiny chip for over half a year on a single CR2032 button type battery! Or you know… just recharge a set of cells from solar panels and run for ever. They’re that awesome 🙂

    (the numbers for ATmega/tiny are for the chip itself, not any additional devices)

  6. Thank you for these kind words 🙂

    Its a pleasure working with Justin,
    he’s very smart and experienced and I’m learning a lot.

  7. Micro-boards are quite fun! Since I am also a .NET developer I have used the Netduino board. One of the model has an Ethernet controller and you can run a small web server so you can control your board from a browser on your internal network.

    PS: Thanks for the shoutout! 🙂

  8. Hi guys,

    I’m just catching up on recent podcasts. Happy new year! Glad to hear some startup talk again including regular updates on pluggio (it’s just like the old days). All the best for the podcast and your many projects in 2013, I’m looking forward to the secret projects being revealed.


  9. Corey says:

    All sorts of good stuff this week!

    Re: MySQL being agile… The Birdy’s main database is MySQL, but I recently started using ironCache for storing processed data (effectively as a cache), and I think I’m moving it to Mongo. As you guys mentioned, I think it’s worth starting with MySQL, or honestly whatever’s cheapest and in front of you, and then fix problems using other technologies as they arise.

    Re: the Slim framework: I also built the new Birdy API using the SlimFramework. So simple, tho it’s little more than a router. I chose Idiorm as the ORM, and still found myself loading in some classes from Zend to handle things like currency.

    Re: Phonegap: And now that the Birdy has a fancy new API, I’m building the whole Birdy experience around jQuery mobile (so far) and Phonegap. My complaint with JQM so far is that it’s huge. I’m looking into alternatives, or looking for suggestions… hint, hint. 🙂

    Thanks for a great podcast, as ever!

  10. Bill says:

    Saw this device called a Pinoccio on Indigogo and thought it was interesting in light of the Arduino conversation.

    Great show again!

  11. Alex Gemmell says:

    Ahhhh, Justin. You have never liked those “big” frameworks have you? I remember often “discussing” their benefits with you, insisting that using them is almost always better than rolling your own.

    I agree that many are too restrictive (don’t get me started about Cake – possibly the most awful PHP framework out there) and force you in to working a certain way that you can’t easily work around when you need to. I’ve never been a massive fan of Zend but they definitely approached the idea of a “framework” better, making a lot of their classes easily reusable in any (non-Zend) project. However, Symfony, for me, is (and always hass been) the leader in doing “frameworks” right.

    Symfony is doing it right by being a library of components which you can use anyway you want. Other frameworks have tried (Zend was close) but Symfony have really nailed it. In fact, many other “framework” projects actually USE Symfony components in them, that’s how well they have done them.

    I remember back when if you need an “enterprise level” codebase you went for one of the “heavy weight frameworks” and either used Zend of Symfony. I remember there was a bit of a flame-war between the two camps. Then Symfony and Zend got together and healed the rift by announcing that one camp did X better and the other did Y better, so they agreed to incorporate the better classes in to their own projects. And since then it has felt like PHP has moved forward greatly.

    You’ll notice I put the word framework in inverted commas. Framework is now a loaded word and implies a restrictive way of working. Happily it applies less and less to the new projects out there because the PHP community is growing up and choosing to do “the right thing” by using more standards in how we work. These standards help interoperability. Nowadays the “frameworks” of old are much loser collections of libraries – exactly as it should be and exactly why the old argument of “they force me to work a certain way” doesn’t apply so much anymore.

    Symfony is a collection of components that can be put together however you want. They have put together a full-stack framework which you can use f you choose to, or if you’re looking for something lighter you can choose to use Silex (http://silex.sensiolabs.org/) which is their “micro-framework”. Perhaps that is more suited to your needs?

    You mentioned Lavarel as the PHP framework you chose to use, which is great because I have heard only good things about it! You may also be interested to know that it sits proudly upon one other project’s components: Symfony’s. Have a look in the vendor directory (https://github.com/laravel/laravel/tree/master/laravel/vendor) and you will find two of the most fundamental Symfony components: Console and HttpFoundation.

    And if you’re a fan of Drupal (I am most definitely NOT a fan) then you probably already know that Drupal 8 will be using Symfony components at its core: HttpFoundation, HttpKernel, Routing, EventDispatcher, DependencyInjection, and ClassLoader. If you ARE a Drupal developer, then please stop it. God I hate Drupal.

    So this is exactly what the creators of Symfony want people to do. Take their well written, well tested and community supported code and just use the bits you need. Along with projects like Doctrine (http://www.doctrine-project.org/), Composer (http://getcomposer.org/) and PSR-X (http://net.tutsplus.com/tutorials/php/psr-huh/) we can see that PHP is truly going from strength to strength.

    Is there a learning curve with Symfony? Yes definitely, but its totally worth it.

    Is Symfony appropriate for your project? Maybe, maybe not. But if you project requires interacting with the HTTP layer or is driven via the CLI or needs to interface with MySQL, MongoDB or CouchDB… errrr… basically any project ever – then you can’t do much better than to leverage the great work already existing in Symfony components.

    (And Lavarel is a great choice by the way)

  12. Justin says:

    @Alex – Oh there you go again, praising that old bit of mutton dressed as lamb, Symfony 😉 Na, I hear it’s quite good actually… So when are you gonna get your ass over to Pasadena and chill with the dudes?