[racket] Internet of Things/ Marketplace

From: Jukka Tuominen (jukka.tuominen at finndesign.fi)
Date: Sun Nov 17 10:07:54 EST 2013

There's also Jay's port to zeromq, which is looking very promising.
However, when I try to run it (racket 5.3.5/ Ubuntu 10.04) by...

#lang racket

(require (planet "main.rkt" ("jaymccarthy" "zeromq.plt" 2 1)))

... it displays the following error:

ffi-lib: couldn't open "libzmq.so" (libzmq.so: cannot open shared object
file: No such file or directory)

...eventhough there is one in /usr/local/lib/libzmq.so

Any idea of how to get it working?

br, jukka


>
> Hi all,
>
> some time ago I built a simple client/server proof-of-concept for the
> Liitin project ( www.liitin.org )
> http://lists.racket-lang.org/users/archive/2011-June/046372.html
>
> Although this is still valid for a direct, one-way device/service
> communication, I now have a more generic and UX-oriented p-o-c in mind to
> follow the Liitin philosophy. Here’s my Internet of Things vision in
> brief:
>
>
> - A publish/ subscribe server that both users and devices can access
> through firewalls. Only the server requires a static, public IP. This will
> be available for Liitin users by default.
>
> - Once a device is turned on, it automatically connects to the pub/sub
> server as a publisher to provide a two-way communication channel: pushing
> event notifications to subscribers and acting on subscribers’ commands. SW
> services may use the same method.
>
> - Once the user has signed onto his/her (Liitin) account, a daemon is
> automatically launched to connect to the pub/sub server as a subscriber to
> both receive push notifications and allowing to send commands to the
> device.
>
> - There’s a Device Manager GUI to add and manage devices. The devices only
> contain primitive functions in Racket syntax and all the higher-level
> programming is handled by Racket on the client side and stored as Liitin
> Objects. In effect, you can freely combine functionality from different
> devices and between users when shared. E.g.
> (when (below-zero? thermometer-x)(turn-on! heater-y))
> The event stream can be parsed e.g. for notifications and direct
> reactions, or be integrated into various GUI applications.
>
>
> I was happy to hear about the package Marketplace for Racket (
> http://blog.racket-lang.org/2013/05/marketplace-language-for-network-aware.html
> ), and I wonder if it could be used as a starting point? It would be
> native Racket all the way through. Another option is to choose some
> generic open-source pub-sub server, and make the user and device ends
> speak racket.
>
> I’m still speaking of a p-o-c, so it’s more important at this phase to be
> able to have the ends communicate with each other and to manage multi-user
> and multi-device traffic than to make the implementation robust and
> secure. Those come later.
>
> I will use virtual machines for the pub/sub server and device clients to
> begin with. The user clients will be integrated into Liitin accounts. It
> would be great to add Arduino support at some point.
>
> What do you think, would the Marketplace be a good starting point or do
> you recommend some other approach? Any pointers and comments regarding
> either the concept or the implementation are greatly appreciated.
>
>
> br, jukka
>
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>



Posted on the users mailing list.