1. 2

    Dulcimer, a node.js levelup & riak ORM. I’m working on making riak a first class citizen, first with riakdown (a levelup backend for riak), and riak features as levelup wrappers.

    The idea is that you can develop against level and deploy against riak, although if you don’t need high availability, the embedded levelup db would be faster.

    1. 3

      I’ve heard that MQTT is a nice protocol, but the article here doesn’t entertain any alternatives to MQTT, just a passing mention. Anyone with more experience know why to use MQTT versus other messaging protocols?

      1. 2

        Hi, I’m the author. The reason I didn’t spend much time on the alternatives was (1) I was running out of space (lame, I know, but it’s a reality that authors have to keep in mind) and (2) MQTT is the most promising. My intention was to get devs thinking outside the box of “oh, I’ll just use HTTP” or “oh I’ll just open a TCP socket” and underline the problems with those approaches.

        Many people pointed out that CoAP is an alternative. I plan to write another blog soon that centers around CoAP. It’s an excellent M2M protocol, but it’s more of a lightweight alternative to HTTP since it’s RESTful architecture, not publish/subscribe like MQTT. Also, architectures that use CoAP are typically inverted from what you normally think of with HTTP. All the other pub/sub options that people are using for M2M/IoT aren’t very well suited for the job as compared to MQTT.

        STOMP is immature and rather bulky. AMQ & XMPP are too heavy on the client side. Kafka scales well, but is very heavy on the client side. Then there’s always the option of opening up a raw socket and writing to it; hopefully I’ve talked you down from that one though ;) MQTT fits the domain well because it’s very resource conscious and lets you ignore pesky problems like network disconnects.

        1. 2

          You mention in your comments that XMPP “uses HTTP.” This is incorrect. Yes, we do have extensions for long-polling HTTP, but that is not the primary interface. Also, I would expect to see JSON transforms before too long.

          1. 1

            Thanks, that’s informative. I plan to get my hands deeper into XMPP soon. Maybe then I’ll say less uneducated things about it :)

      1. 3

        For the lazy… My stock Firefox 26 (current stable) failed until I set security.tls.version.max to 3 and security.ssl3.rsa_fips_des_ede3_sha to false (in about:config)

        1. 1

          That’s interesting. Just to contrast, I’m use Firefox Nightly 29.0a1 (2014-01-06), and it passes with the default security config. It’s good to see that Mozilla is being proactive then. I wonder when these defaults were changed.

          1. 2

            It looks like they changed in Firefox 27, but I’m still on 26 and can’t confirm for sure.

        1. 3

          I don’t normally write web client-side code, but I wrote StayDown (https://github.com/fritzy/staydown) to modularize a common problem: overflow scroll pinning w/ user intention, including dealing with image load and arbitrary dom changes. I’ll polish that up some more this week.

          Otherwise, I’m doing client work, part of which involves making VeryModel (https://github.com/fritzy/verymodel) even better based on user feedback. It’s a Node.js model system that can be extended to be an ORM, that isn’t bound to any specific framework.