[racket] Internet of Things/ Marketplace

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

Sorry, email weirdness:

https://github.com/jeapostrophe/zguide/tree/master/examples/Racket



On Fri, Nov 29, 2013 at 6:47 AM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
> 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



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