[racket] Internet of Things/ Marketplace

From: Jukka Tuominen (jukka.tuominen at finndesign.fi)
Date: Wed Nov 27 13:49:38 EST 2013

Having just mentioned the bundled examples, I just realised that the only
examples I've found are the ones from the zguide. These may not be
compatible with the planet zeromq packages 1.0 and 2.0 that seem to
otherwise behave with the racket 5.1 (unlike 2.1). ... not that I could
get the examples working with the racket 5.3.6 & zeromq 4.0 either. My
windows just crashed, so it's propably just me... sigh

I wonder if anyone has some code made for these planet versions 1.0 or 2.0
that you are willing to share?

br, jukka


>
>
>> 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
>>
>
>
> ____________________
>   Racket Users list:
>   http://lists.racket-lang.org/users
>



Posted on the users mailing list.