[racket] Internet of Things/ Marketplace

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Fri Nov 29 08:47:20 EST 2013

Hi Jukka,

These are the examples that I test with:


On Wed, Nov 27, 2013 at 11:49 AM, Jukka Tuominen
<jukka.tuominen at finndesign.fi> wrote:
>
> 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
>>
>
>



-- 
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.