[racket] Internet of Things/ Marketplace

From: Jukka Tuominen (jukka.tuominen at finndesign.fi)
Date: Wed Nov 27 12:57:36 EST 2013


> On Wed, Nov 27, 2013 at 10:02 AM, Jukka Tuominen
> <jukka.tuominen at finndesign.fi> wrote:
>> Jay,
>>
>> I've tried numerous version combinations of Racket/zeromq/your API on
>> ubuntu 10.04 but can't get any to work. These are the versions I've
>> tried:
>>
>> Racket 5.1 - 5.3.6
>> Zeromq 2.2 - 4.x
>> API planet 1.0 - latest pkg
>> (Several but not every racket versions)
>>
>> At best, the server gets started (by running either xserver.rkt in
>> drracket) but soon becomes unresponsive. The client crashes immediately
>> taking the drracket along. Neither one is capable of presenting error
>> messages.
>>
>> I'm propably doing something seriously wrong, but AFAIU the zeromq is
>> correctly compiled and installed now, and your API downloaded to racket.
>>
>> To create the proof-of-concept on Liitin, the last versions of each are
>> not necessary. Ideally, I would use ubuntu 10.04 and racket 5.1 and pick
>> working versions of zeromq and your API to go with. Would you, by any
>> chance, remember which versions should work in this setting, if any?
>>
>> Any other combination you know to work in ubuntu, if any?
>
> I don't know what you mean by "API planet 1.0".

Sorry, I was on the move and didn't know how to call it. These are the
ones I meant:
http://planet.racket-lang.org/display.ss?package=zeromq.plt&owner=jaymccarthy


The Planet package is
> not supported by me. It was developed on Ubuntu with the latest
> release of everything when it was posted.

Great, I'll try to trace the combination at that time. It's good to know
that ubuntu was used.

>
> Today, I use archlinux, with Racket 6, with zeromq 4.0.1 and the
> zeromq Racket package I've linked before (available on
> pkgs.racket-lang.org). All the Racket examples from the zguide work
> fine. If you were to send me the program you're trying, we could see
> what is going wrong.

I'm trying to get the bundled examples working first, so I know the
environment is OK.

thanks,
jukka

>
> Jay
>
>> Br, jukka
>>
>> Sent from my iPhone
>>
>>> On 17.11.2013, at 17.12, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
>>>
>>> Now that the new package system, most people are not maintaining their
>>> old Planet packages. The zeromq package has had a lot of change in
>>> particular and perhaps this has gone away for you:
>>>
>>> http://pkgs.racket-lang.org/#[zeromq]
>>>
>>> But also make sure that your library loading environment variables are
>>> set up right
>>>
>>> Jay
>>>
>>> On Sun, Nov 17, 2013 at 8:07 AM, Jukka Tuominen
>>> <jukka.tuominen at finndesign.fi> wrote:
>>>>
>>>> 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
>>>>
>>>>
>>>> ____________________
>>>>  Racket Users list:
>>>>  http://lists.racket-lang.org/users
>>>
>>>
>>>
>>> --
>>> Jay McCarthy <jay at cs.byu.edu>
>>> Assistant Professor / Brigham Young University
>>> http://faculty.cs.byu.edu/~jay
>>>
>>> "The glory of God is Intelligence" - D&C 93
>
>
>
> --
> Jay McCarthy <jay at cs.byu.edu>
> Assistant Professor / Brigham Young University
> http://faculty.cs.byu.edu/~jay
>
> "The glory of God is Intelligence" - D&C 93
>



Posted on the users mailing list.