You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@iota.apache.org by Tony Faustini <to...@litbit.com> on 2016/11/01 04:12:26 UTC

Here is a draft of the November iota report - feedback welcome

iota

Open source system that enables the orchestration of IoT devices.

iota has been incubating since 2016-01-20.

Three most important issues to address in the move towards graduation:

  1. Building the developer community
  2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
  3. Better leadership of the project itself

Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
aware of?

Committers are still very interested in seeing this podling develop.

How has the community developed since the last report?

Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.

How has the project developed since the last report?

Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.

Date of last release:

  Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.

When were the last committers or PMC members elected?

10 months ago

Signed-off-by:

  [ ](iota) Daniel Gruno
  [ ](iota) Sterling Hughes
  [ ](iota) Justin Mclean
  [ ](iota) Hadrian Zbarcea

Shepherd/Mentor notes:



Re: Here is a draft of the November iota report - feedback welcome

Posted by Hadrian Zbarcea <hz...@gmail.com>.
Hi,

I believe the main focus at this point should be community building. 
There is a code base now and a release should follow soon. However, 
community and adoption tasks are lagging.

I didn't realize for instance that Barbara Malta Gomes is not a 
committer, yet according to github [1] she is the #1 contributor. She 
has an icla on file, I would recommend inviting her as a committer 
(start a vote, etc) and mentioning that in the report.

 From what I notice, the IoT field is quite fragmented now and 
everybody, especially the big players, are trying to establish 
themselves as the de-facto platform. For this project to stay on the 
map, a lot of effort will be required to reach out to other players and 
increase adoption and number of contributors.

My $0.02,
Hadrian

[1] https://github.com/apache/incubator-iota/graphs/contributors


On 11/01/2016 12:12 AM, Tony Faustini wrote:
> iota
>
> Open source system that enables the orchestration of IoT devices.
>
> iota has been incubating since 2016-01-20.
>
> Three most important issues to address in the move towards graduation:
>
>   1. Building the developer community
>   2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>   3. Better leadership of the project itself
>
> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> aware of?
>
> Committers are still very interested in seeing this podling develop.
>
> How has the community developed since the last report?
>
> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
>
> How has the project developed since the last report?
>
> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
>
> Date of last release:
>
>   Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
>
> When were the last committers or PMC members elected?
>
> 10 months ago
>
> Signed-off-by:
>
>   [ ](iota) Daniel Gruno
>   [ ](iota) Sterling Hughes
>   [ ](iota) Justin Mclean
>   [ ](iota) Hadrian Zbarcea
>
> Shepherd/Mentor notes:
>
>

Re: Here is a draft of the November iota report - feedback welcome

Posted by Tony Faustini <to...@litbit.com>.
Thanks for the reminder John - will do.
-Tony


> On Nov 2, 2016, at 3:17 PM, John D. Ament <jo...@apache.org> wrote:
> 
> iota,
> 
> Don't forget to post your report.  Its due this evening.
> 
> John
> 
> On 2016-11-01 00:12 (-0400), Tony Faustini <to...@litbit.com> wrote: 
>> iota
>> 
>> Open source system that enables the orchestration of IoT devices.
>> 
>> iota has been incubating since 2016-01-20.
>> 
>> Three most important issues to address in the move towards graduation:
>> 
>>  1. Building the developer community
>>  2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>>  3. Better leadership of the project itself
>> 
>> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
>> aware of?
>> 
>> Committers are still very interested in seeing this podling develop.
>> 
>> How has the community developed since the last report?
>> 
>> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
>> 
>> How has the project developed since the last report?
>> 
>> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
>> 
>> Date of last release:
>> 
>>  Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
>> 
>> When were the last committers or PMC members elected?
>> 
>> 10 months ago
>> 
>> Signed-off-by:
>> 
>>  [ ](iota) Daniel Gruno
>>  [ ](iota) Sterling Hughes
>>  [ ](iota) Justin Mclean
>>  [ ](iota) Hadrian Zbarcea
>> 
>> Shepherd/Mentor notes:
>> 
>> 
>> 


Re: Here is a draft of the November iota report - feedback welcome

Posted by "John D. Ament" <jo...@apache.org>.
iota,

Don't forget to post your report.  Its due this evening.

John

On 2016-11-01 00:12 (-0400), Tony Faustini <to...@litbit.com> wrote: 
> iota
> 
> Open source system that enables the orchestration of IoT devices.
> 
> iota has been incubating since 2016-01-20.
> 
> Three most important issues to address in the move towards graduation:
> 
>   1. Building the developer community
>   2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>   3. Better leadership of the project itself
> 
> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> aware of?
> 
> Committers are still very interested in seeing this podling develop.
> 
> How has the community developed since the last report?
> 
> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
> 
> How has the project developed since the last report?
> 
> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
> 
> Date of last release:
> 
>   Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
> 
> When were the last committers or PMC members elected?
> 
> 10 months ago
> 
> Signed-off-by:
> 
>   [ ](iota) Daniel Gruno
>   [ ](iota) Sterling Hughes
>   [ ](iota) Justin Mclean
>   [ ](iota) Hadrian Zbarcea
> 
> Shepherd/Mentor notes:
> 
> 
> 

Re: Mac Development environment for iota ....

Posted by Dennis Jung <in...@gmail.com>.
Hello Tony. Thanks for reply!

It would be good to prepare guide docs about 'combination of scripts and
tools' for new participants like me. It is still bit difficult to support
on with current information on wiki,homepage and github page. Maybe the
comments you left here can be added too.

I'll keep try on, and hope to give some help.

BR,
Dennis.

2016-11-01 21:54 GMT+09:00 Tony Faustini <to...@litbit.com>:

> Hi Dennis, that's another good question. The way I use IntelliJ you can
> develop components using the iota framework and Scala/Akka/Java to generate
> jar files with all their needed dependencies. This is  very convenient with
> the full benefit of a great free ide. Of course you could do this same
> thing with command line tools if you prefer. You can also develop and
> manage your orchestrations in the same Intellij environment.
>
> Your question, if I understand it correctly, is what mechanisms exist in
> this Mac environment to deploy performers (components)  sets of .jar files
> and their associated orchestrations (json files) to a target like a
> RaspberryPI or even a Mesos Cluster? If this is the question then I would
> say the deployment aspect of this is done outside the ide. It would be
> possible to develop plugins to the ids to facilitate deployments but they
> are so varied that having scripts outside the ide for deployment is for the
> moment a more flexible way of deploying orchestrations and performers to
> targets. We use a combination of scripts and tools to achieve this in
> practice (one of which is saltstack). I hope I understood your question.
>
> I would very much like to hear any ideas you have regarding your question.
> If it’s an area you feel you could contribute in then we would be
> most interested in your thoughts and ideas..
>
> -Tony
>
> On Nov 1, 2016, at 3:11 AM, Dennis Jung <in...@gmail.com> wrote:
>
> Hello Tony,
> Thanks! It really helps me. I'm trying to work on it.
> One more, is there some stand-alone build deploy script which work on OSX?
>
> BR,
> Dennis
>
> 2016-11-01 13:53 GMT+09:00 Tony Faustini <to...@litbit.com>:
>
>> Hi Dennis, great question. I do all my development for Iota using the
>> IntelliJ community edition so there is a Mac development environment and it
>> works well. One thing that I have been thinking about but haven’t gotten
>> around to is producing a video that would show you how to setup an Intellij
>> environment download iota and start developing iota performers using
>> Scala/Akka. You can run the iota engine on devices as small as a Raspberry
>> or as large as a Mesos cluster. That’s we we do at Litbit. Here is an
>> example of what you would use Intellij to output
>>
>> 1) a set of jar files one for each performer
>> 2) An orchestration which is essentially the network of interacting
>> performers
>>
>> You could run this on any JVM
>>
>> Here are some examples of orchestrations (Performers not included)
>>
>> Here is test orchestration that shows a single performer that is
>> configured to consume from a Kafka cluster - The orchestration doesn’t
>> connect it to anything so it doesn’t do much.
>>
>> {
>>   "guid" : "KAFKA-CONSUMER-10",
>>   "command" : "CREATE",
>>   "timestamp": "21326329079",
>>   "name" : "ORCHESTRATION FOR TEST",
>>   "ensembles" : [
>>     {
>>       "guid":"KAFKA-CONSUMER-ENS",
>>       "command": "NONE",
>>       "performers":[
>>         {
>>           "guid": "KAFKA-PERFORMER-10",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "autoScale": 4,
>>           "source": {
>>             "name": "fey-kafka-10.jar",
>>             "classPath": "org.apache.iota.fey.performer.Kafka_Consumer",
>>             "parameters": {
>>               "topic":"test-10p",
>>               "consumer_number": "2",
>>               "kafka_properties":"{\"bootstrap.servers\": \"localhost:9092\", \"key.deserializer\": \"org.apache.kafka.common.serialization.StringDeserializer\", \"value.deserializer\":\"org.apache.kafka.common.serialization.StringDeserializer\"}"
>>             }
>>           }
>>         }
>>       ],
>>       "connections":[]
>>     }
>>   ]
>> }
>>
>> Here is a more complex orchestration that runs on a RaspberryPi. It takes
>> the input of many sensors and send them to a ZMQ performer that publishes
>> them. It could equally have been an MQTT or ActiveMQ performer
>>
>> {
>>   "guid": "MAESTRO-3",
>>   "command": "RECREATE",
>>   "timestamp": "7919767890",
>>   "name": "DESCRIPTION",
>>   "ensembles": [
>>     {
>>       "guid": "TEMPERATURE",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "guid": "Heartbeat",
>>           "schedule": 30000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_stream.jar",
>>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>>             "parameters": {
>>             }
>>           }
>>         },
>>         {
>>           "guid": "Cherry",
>>           "schedule": 1000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_cherry_rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"1ed6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.5} ]}",
>>               "lrns": "[\"1ed6aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "Heartbeat": [
>>             "Cherry"
>>           ]
>>         },
>>         {
>>           "Cherry": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     },
>>     {
>>       "guid": "PRESSURE",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "comment": "This forces a value to be output every 10 seconds",
>>           "guid": "Heartbeat",
>>           "schedule": 10000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_stream.jar",
>>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>>             "parameters": {
>>             }
>>           }
>>         },
>>         {
>>           "comment": "The Cherry checks to see if it should output something every 1 second",
>>           "guid": "Cherry",
>>           "schedule": 1000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey-cherry-rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"3fd7aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.1} ]}",
>>               "lrns": "[\"3fd7aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "Heartbeat": [
>>             "Cherry"
>>           ]
>>         },
>>         {
>>           "Cherry": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     },
>>     {
>>       "guid": "HUMIDITY",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "guid": "Heartbeat",
>>           "schedule": 30000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_stream.jar",
>>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>>             "parameters": {
>>             }
>>           }
>>         },
>>         {
>>           "guid": "Cherry",
>>           "schedule": 1000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_cherry_rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"2fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":5.0} ]}",
>>               "lrns": "[\"2fd6aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "Heartbeat": [
>>             "Cherry"
>>           ]
>>         },
>>         {
>>           "Cherry": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     },
>>     {
>>       "guid": "SOUNDDB",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "guid": "Heartbeat",
>>           "schedule": 10000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_stream.jar",
>>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>>             "parameters": {
>>             }
>>           }
>>         },
>>         {
>>           "guid": "Cherry",
>>           "schedule": 1000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_cherry_rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"7fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":3.0} ]}",
>>               "lrns": "[\"7fd6aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "Heartbeat": [
>>             "Cherry"
>>           ]
>>         },
>>         {
>>           "Cherry": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     },
>>     {
>>       "guid": "VIBRATION_AGGREGATE",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "guid": "Heartbeat",
>>           "schedule": 10000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_stream.jar",
>>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>>             "parameters": {
>>             }
>>           }
>>         },
>>         {
>>           "guid": "Cherry",
>>           "schedule": 1000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_cherry_rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"5fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.02} ]}",
>>               "lrns": "[\"5fd6aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "Heartbeat": [
>>             "Cherry"
>>           ]
>>         },
>>         {
>>           "Cherry": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     },
>>     {
>>       "guid": "VIBRATION",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "guid": "VibrationStream",
>>           "schedule": 1000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_cherry_rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"didVibrationChange\":\"6fd6aed2b028486fa478b3d3f6e7ee61\"}",
>>               "lrns": "[\"6fd6aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "VibrationStream": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     },
>>     {
>>       "guid": "SOUND_WAV",
>>       "command": "NONE",
>>       "performers": [
>>         {
>>           "guid": "Cherry",
>>           "schedule": 3000,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_cherry_rp.jar",
>>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>>             "parameters": {
>>               "cherry": "{\"didSoundChange\":\"9fd6aed2b028486fa478b3d3f6e7ee61\"}",
>>               "lrns": "[\"9fd6aed2b028486fa478b3d3f6e7ee61\"]",
>>               "host": "192.168.0.17"
>>             }
>>           }
>>         },
>>         {
>>           "guid": "ZMQPublisher",
>>           "schedule": 0,
>>           "backoff": 0,
>>           "source": {
>>             "name": "fey_zmq.jar",
>>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>>             "parameters": {
>>               "zmq_port": "5559",
>>               "zmq_target": "192.168.0.139"
>>             }
>>           }
>>         }
>>       ],
>>       "connections": [
>>         {
>>           "Cherry": [
>>             "ZMQPublisher"
>>           ]
>>         }
>>       ]
>>     }
>>   ]
>> }
>>
>> Here is a very simple performer that operators on a schedule specified in
>> an orchestration and simple passes the string “Alive” to anything that it
>> is connected to i the orchestration that uses it.
>>
>> /*
>>  * Licensed to the Apache Software Foundation (ASF) under one or more
>>  * contributor license agreements.  See the NOTICE file distributed with
>>  * this work for additional information regarding copyright ownership.
>>  * The ASF licenses this file to You under the Apache License, Version 2.0
>>  * (the "License"); you may not use this file except in compliance with
>>  * the License.  You may obtain a copy of the License at
>>  *
>>  *    http://www.apache.org/licenses/LICENSE-2.0
>>  *
>>  * Unless required by applicable law or agreed to in writing, software
>>  * distributed under the License is distributed on an "AS IS" BASIS,
>>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>>  * See the License for the specific language governing permissions and
>>  * limitations under the License.
>>  */
>>
>> package org.apache.iota.fey.performer
>>
>> import akka.actor.ActorRef
>> import org.apache.iota.fey.FeyGenericActor
>>
>> import scala.collection.immutable.Map
>> import scala.concurrent.duration._
>>
>> class Heartbeat(override val params: Map[String, String] = Map.empty,
>>                 override val backoff: FiniteDuration = 1.minutes,
>>                 override val connectTo: Map[String, ActorRef] = Map.empty,
>>                 override val schedulerTimeInterval: FiniteDuration = 30.seconds,
>>                 override val orchestrationName: String = "",
>>                 override val orchestrationID: String = "",
>>                 override val autoScale: Boolean = false) extends FeyGenericActor {
>>
>>   override def onStart = {
>>   }
>>
>>   override def onStop = {
>>   }
>>
>>   override def onRestart(reason: Throwable) = {
>>     // Called after actor is up and running - after self restart
>>   }
>>
>>   override def customReceive: Receive = {
>>     case x => log.info(s"Untreated $x")
>>   }
>>
>>   override def processMessage[T](message: T, sender: ActorRef): Unit = {
>>   }
>>
>>   override def execute() = {
>>     propagateMessage("Alive")
>>   }
>>
>> }
>>
>>
>>
>>
>> On Oct 31, 2016, at 9:32 PM, Dennis Jung <in...@gmail.com> wrote:
>>
>> Hello Tony,
>> Thanks for notification. Also, do you have a plan to make dev environment
>> for Mac? It seems like it supports Linux only currently.
>>
>> BR,
>> Dennis
>>
>> 2016-11-01 13:27 GMT+09:00 Tony Faustini <to...@litbit.com>:
>>
>>> Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow
>>> evening to give folks a chance to comment as requested by Justin. Yes the
>>> Wiki is quite slow tonight.
>>>
>>> Thanks
>>> -Tony
>>>
>>> > On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <hz...@gmail.com>
>>> wrote:
>>> >
>>> > Looks good.
>>> >
>>> > I assume it's in the wiki, but cannot check, the wiki is incredibly
>>> slow now.
>>> >
>>> > Hadrian
>>> >
>>> > On 11/01/2016 12:12 AM, Tony Faustini wrote:
>>> >> iota
>>> >>
>>> >> Open source system that enables the orchestration of IoT devices.
>>> >>
>>> >> iota has been incubating since 2016-01-20.
>>> >>
>>> >> Three most important issues to address in the move towards graduation:
>>> >>
>>> >>  1. Building the developer community
>>> >>  2. Outreach at events outside the Apache ecosystem to inform and
>>> invite participation in the project
>>> >>  3. Better leadership of the project itself
>>> >>
>>> >> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
>>> >> aware of?
>>> >>
>>> >> Committers are still very interested in seeing this podling develop.
>>> >>
>>> >> How has the community developed since the last report?
>>> >>
>>> >> Slowly - mainly 4 individuals that are contributing in spurts of
>>> activity. This needs to become consistent with better online leadership.
>>> >>
>>> >> How has the project developed since the last report?
>>> >>
>>> >> Technical contributions have been made and will continue to be  made
>>> but there is a need engage and articulate the vision and architecture more
>>> actively on the mailing lists.
>>> >>
>>> >> Date of last release:
>>> >>
>>> >>  Not released yet - had discussed an initial release at the end of
>>> this year but will need to see a stronger ecosystem develop to facilitate
>>> such a goal.
>>> >>
>>> >> When were the last committers or PMC members elected?
>>> >>
>>> >> 10 months ago
>>> >>
>>> >> Signed-off-by:
>>> >>
>>> >>  [ ](iota) Daniel Gruno
>>> >>  [ ](iota) Sterling Hughes
>>> >>  [ ](iota) Justin Mclean
>>> >>  [ ](iota) Hadrian Zbarcea
>>> >>
>>> >> Shepherd/Mentor notes:
>>> >>
>>> >>
>>>
>>>
>>
>>
>
>

Re: Mac Development environment for iota ....

Posted by Tony Faustini <to...@litbit.com>.
Hi Dennis, that's another good question. The way I use IntelliJ you can develop components using the iota framework and Scala/Akka/Java to generate jar files with all their needed dependencies. This is  very convenient with the full benefit of a great free ide. Of course you could do this same thing with command line tools if you prefer. You can also develop and manage your orchestrations in the same Intellij environment. 

Your question, if I understand it correctly, is what mechanisms exist in this Mac environment to deploy performers (components)  sets of .jar files and their associated orchestrations (json files) to a target like a RaspberryPI or even a Mesos Cluster? If this is the question then I would say the deployment aspect of this is done outside the ide. It would be possible to develop plugins to the ids to facilitate deployments but they are so varied that having scripts outside the ide for deployment is for the moment a more flexible way of deploying orchestrations and performers to targets. We use a combination of scripts and tools to achieve this in practice (one of which is saltstack). I hope I understood your question.

I would very much like to hear any ideas you have regarding your question. If it’s an area you feel you could contribute in then we would be most interested in your thoughts and ideas..

-Tony

> On Nov 1, 2016, at 3:11 AM, Dennis Jung <in...@gmail.com> wrote:
> 
> Hello Tony,
> Thanks! It really helps me. I'm trying to work on it.
> One more, is there some stand-alone build deploy script which work on OSX?
> 
> BR,
> Dennis
> 
> 2016-11-01 13:53 GMT+09:00 Tony Faustini <tony@litbit.com <ma...@litbit.com>>:
> Hi Dennis, great question. I do all my development for Iota using the IntelliJ community edition so there is a Mac development environment and it works well. One thing that I have been thinking about but haven’t gotten around to is producing a video that would show you how to setup an Intellij environment download iota and start developing iota performers using Scala/Akka. You can run the iota engine on devices as small as a Raspberry or as large as a Mesos cluster. That’s we we do at Litbit. Here is an example of what you would use Intellij to output
> 
> 1) a set of jar files one for each performer
> 2) An orchestration which is essentially the network of interacting performers
> 
> You could run this on any JVM
> 
> Here are some examples of orchestrations (Performers not included)
> 
> Here is test orchestration that shows a single performer that is configured to consume from a Kafka cluster - The orchestration doesn’t connect it to anything so it doesn’t do much.
> 
> {
>   "guid" : "KAFKA-CONSUMER-10",
>   "command" : "CREATE",
>   "timestamp": "21326329079",
>   "name" : "ORCHESTRATION FOR TEST",
>   "ensembles" : [
>     {
>       "guid":"KAFKA-CONSUMER-ENS",
>       "command": "NONE",
>       "performers":[
>         {
>           "guid": "KAFKA-PERFORMER-10",
>           "schedule": 0,
>           "backoff": 0,
>           "autoScale": 4,
>           "source": {
>             "name": "fey-kafka-10.jar",
>             "classPath": "org.apache.iota.fey.performer.Kafka_Consumer",
>             "parameters": {
>               "topic":"test-10p",
>               "consumer_number": "2",
>               "kafka_properties":"{\"bootstrap.servers\": \"localhost:9092\", \"key.deserializer\": \"org.apache.kafka.common.serialization.StringDeserializer\", \"value.deserializer\":\"org.apache.kafka.common.serialization.StringDeserializer\"}"
>             }
>           }
>         }
>       ],
>       "connections":[]
>     }
>   ]
> }
> Here is a more complex orchestration that runs on a RaspberryPi. It takes the input of many sensors and send them to a ZMQ performer that publishes them. It could equally have been an MQTT or ActiveMQ performer
> 
> {
>   "guid": "MAESTRO-3",
>   "command": "RECREATE",
>   "timestamp": "7919767890",
>   "name": "DESCRIPTION",
>   "ensembles": [
>     {
>       "guid": "TEMPERATURE",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 30000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"1ed6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.5} ]}",
>               "lrns": "[\"1ed6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "PRESSURE",
>       "command": "NONE",
>       "performers": [
>         {
>           "comment": "This forces a value to be output every 10 seconds",
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "comment": "The Cherry checks to see if it should output something every 1 second",
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey-cherry-rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"3fd7aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.1} ]}",
>               "lrns": "[\"3fd7aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "HUMIDITY",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 30000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"2fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":5.0} ]}",
>               "lrns": "[\"2fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "SOUNDDB",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"7fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":3.0} ]}",
>               "lrns": "[\"7fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "VIBRATION_AGGREGATE",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"5fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.02} ]}",
>               "lrns": "[\"5fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "VIBRATION",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "VibrationStream",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"didVibrationChange\":\"6fd6aed2b028486fa478b3d3f6e7ee61\"}",
>               "lrns": "[\"6fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "VibrationStream": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "SOUND_WAV",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Cherry",
>           "schedule": 3000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"didSoundChange\":\"9fd6aed2b028486fa478b3d3f6e7ee61\"}",
>               "lrns": "[\"9fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     }
>   ]
> }
> Here is a very simple performer that operators on a schedule specified in an orchestration and simple passes the string “Alive” to anything that it is connected to i the orchestration that uses it.
> 
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0 <http://www.apache.org/licenses/LICENSE-2.0>
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
> 
> package org.apache.iota.fey.performer
> 
> import akka.actor.ActorRef
> import org.apache.iota.fey.FeyGenericActor
> 
> import scala.collection.immutable.Map
> import scala.concurrent.duration._
> 
> class Heartbeat(override val params: Map[String, String] = Map.empty,
>                 override val backoff: FiniteDuration = 1.minutes,
>                 override val connectTo: Map[String, ActorRef] = Map.empty,
>                 override val schedulerTimeInterval: FiniteDuration = 30.seconds,
>                 override val orchestrationName: String = "",
>                 override val orchestrationID: String = "",
>                 override val autoScale: Boolean = false) extends FeyGenericActor {
> 
>   override def onStart = {
>   }
> 
>   override def onStop = {
>   }
> 
>   override def onRestart(reason: Throwable) = {
>     // Called after actor is up and running - after self restart
>   }
> 
>   override def customReceive: Receive = {
>     case x => log.info <http://log.info/>(s"Untreated $x")
>   }
> 
>   override def processMessage[T](message: T, sender: ActorRef): Unit = {
>   }
> 
>   override def execute() = {
>     propagateMessage("Alive")
>   }
> 
> }
> 
> 
> 
>> On Oct 31, 2016, at 9:32 PM, Dennis Jung <inylove82@gmail.com <ma...@gmail.com>> wrote:
>> 
>> Hello Tony,
>> Thanks for notification. Also, do you have a plan to make dev environment for Mac? It seems like it supports Linux only currently.
>> 
>> BR,
>> Dennis
>> 
>> 2016-11-01 13:27 GMT+09:00 Tony Faustini <tony@litbit.com <ma...@litbit.com>>:
>> Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow evening to give folks a chance to comment as requested by Justin. Yes the Wiki is quite slow tonight.
>> 
>> Thanks
>> -Tony
>> 
>> > On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <hzbarcea@gmail.com <ma...@gmail.com>> wrote:
>> >
>> > Looks good.
>> >
>> > I assume it's in the wiki, but cannot check, the wiki is incredibly slow now.
>> >
>> > Hadrian
>> >
>> > On 11/01/2016 12:12 AM, Tony Faustini wrote:
>> >> iota
>> >>
>> >> Open source system that enables the orchestration of IoT devices.
>> >>
>> >> iota has been incubating since 2016-01-20.
>> >>
>> >> Three most important issues to address in the move towards graduation:
>> >>
>> >>  1. Building the developer community
>> >>  2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>> >>  3. Better leadership of the project itself
>> >>
>> >> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
>> >> aware of?
>> >>
>> >> Committers are still very interested in seeing this podling develop.
>> >>
>> >> How has the community developed since the last report?
>> >>
>> >> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
>> >>
>> >> How has the project developed since the last report?
>> >>
>> >> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
>> >>
>> >> Date of last release:
>> >>
>> >>  Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
>> >>
>> >> When were the last committers or PMC members elected?
>> >>
>> >> 10 months ago
>> >>
>> >> Signed-off-by:
>> >>
>> >>  [ ](iota) Daniel Gruno
>> >>  [ ](iota) Sterling Hughes
>> >>  [ ](iota) Justin Mclean
>> >>  [ ](iota) Hadrian Zbarcea
>> >>
>> >> Shepherd/Mentor notes:
>> >>
>> >>
>> 
>> 
> 
> 


Re: Mac Development environment for iota ....

Posted by Dennis Jung <in...@gmail.com>.
Hello Tony,
Thanks! It really helps me. I'm trying to work on it.
One more, is there some stand-alone build deploy script which work on OSX?

BR,
Dennis

2016-11-01 13:53 GMT+09:00 Tony Faustini <to...@litbit.com>:

> Hi Dennis, great question. I do all my development for Iota using the
> IntelliJ community edition so there is a Mac development environment and it
> works well. One thing that I have been thinking about but haven’t gotten
> around to is producing a video that would show you how to setup an Intellij
> environment download iota and start developing iota performers using
> Scala/Akka. You can run the iota engine on devices as small as a Raspberry
> or as large as a Mesos cluster. That’s we we do at Litbit. Here is an
> example of what you would use Intellij to output
>
> 1) a set of jar files one for each performer
> 2) An orchestration which is essentially the network of interacting
> performers
>
> You could run this on any JVM
>
> Here are some examples of orchestrations (Performers not included)
>
> Here is test orchestration that shows a single performer that is
> configured to consume from a Kafka cluster - The orchestration doesn’t
> connect it to anything so it doesn’t do much.
>
> {
>   "guid" : "KAFKA-CONSUMER-10",
>   "command" : "CREATE",
>   "timestamp": "21326329079",
>   "name" : "ORCHESTRATION FOR TEST",
>   "ensembles" : [
>     {
>       "guid":"KAFKA-CONSUMER-ENS",
>       "command": "NONE",
>       "performers":[
>         {
>           "guid": "KAFKA-PERFORMER-10",
>           "schedule": 0,
>           "backoff": 0,
>           "autoScale": 4,
>           "source": {
>             "name": "fey-kafka-10.jar",
>             "classPath": "org.apache.iota.fey.performer.Kafka_Consumer",
>             "parameters": {
>               "topic":"test-10p",
>               "consumer_number": "2",
>               "kafka_properties":"{\"bootstrap.servers\": \"localhost:9092\", \"key.deserializer\": \"org.apache.kafka.common.serialization.StringDeserializer\", \"value.deserializer\":\"org.apache.kafka.common.serialization.StringDeserializer\"}"
>             }
>           }
>         }
>       ],
>       "connections":[]
>     }
>   ]
> }
>
> Here is a more complex orchestration that runs on a RaspberryPi. It takes
> the input of many sensors and send them to a ZMQ performer that publishes
> them. It could equally have been an MQTT or ActiveMQ performer
>
> {
>   "guid": "MAESTRO-3",
>   "command": "RECREATE",
>   "timestamp": "7919767890",
>   "name": "DESCRIPTION",
>   "ensembles": [
>     {
>       "guid": "TEMPERATURE",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 30000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"1ed6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.5} ]}",
>               "lrns": "[\"1ed6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "PRESSURE",
>       "command": "NONE",
>       "performers": [
>         {
>           "comment": "This forces a value to be output every 10 seconds",
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "comment": "The Cherry checks to see if it should output something every 1 second",
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey-cherry-rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"3fd7aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.1} ]}",
>               "lrns": "[\"3fd7aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "HUMIDITY",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 30000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"2fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":5.0} ]}",
>               "lrns": "[\"2fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "SOUNDDB",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"7fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":3.0} ]}",
>               "lrns": "[\"7fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "VIBRATION_AGGREGATE",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Heartbeat",
>           "schedule": 10000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_stream.jar",
>             "classPath": "org.apache.iota.fey.performer.Heartbeat",
>             "parameters": {
>             }
>           }
>         },
>         {
>           "guid": "Cherry",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"5fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.02} ]}",
>               "lrns": "[\"5fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Heartbeat": [
>             "Cherry"
>           ]
>         },
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "VIBRATION",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "VibrationStream",
>           "schedule": 1000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"didVibrationChange\":\"6fd6aed2b028486fa478b3d3f6e7ee61\"}",
>               "lrns": "[\"6fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "VibrationStream": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     },
>     {
>       "guid": "SOUND_WAV",
>       "command": "NONE",
>       "performers": [
>         {
>           "guid": "Cherry",
>           "schedule": 3000,
>           "backoff": 0,
>           "source": {
>             "name": "fey_cherry_rp.jar",
>             "classPath": "org.apache.iota.fey.performer.CherryRP",
>             "parameters": {
>               "cherry": "{\"didSoundChange\":\"9fd6aed2b028486fa478b3d3f6e7ee61\"}",
>               "lrns": "[\"9fd6aed2b028486fa478b3d3f6e7ee61\"]",
>               "host": "192.168.0.17"
>             }
>           }
>         },
>         {
>           "guid": "ZMQPublisher",
>           "schedule": 0,
>           "backoff": 0,
>           "source": {
>             "name": "fey_zmq.jar",
>             "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
>             "parameters": {
>               "zmq_port": "5559",
>               "zmq_target": "192.168.0.139"
>             }
>           }
>         }
>       ],
>       "connections": [
>         {
>           "Cherry": [
>             "ZMQPublisher"
>           ]
>         }
>       ]
>     }
>   ]
> }
>
> Here is a very simple performer that operators on a schedule specified in
> an orchestration and simple passes the string “Alive” to anything that it
> is connected to i the orchestration that uses it.
>
> /*
>  * Licensed to the Apache Software Foundation (ASF) under one or more
>  * contributor license agreements.  See the NOTICE file distributed with
>  * this work for additional information regarding copyright ownership.
>  * The ASF licenses this file to You under the Apache License, Version 2.0
>  * (the "License"); you may not use this file except in compliance with
>  * the License.  You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing, software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>  * See the License for the specific language governing permissions and
>  * limitations under the License.
>  */
>
> package org.apache.iota.fey.performer
>
> import akka.actor.ActorRef
> import org.apache.iota.fey.FeyGenericActor
>
> import scala.collection.immutable.Map
> import scala.concurrent.duration._
>
> class Heartbeat(override val params: Map[String, String] = Map.empty,
>                 override val backoff: FiniteDuration = 1.minutes,
>                 override val connectTo: Map[String, ActorRef] = Map.empty,
>                 override val schedulerTimeInterval: FiniteDuration = 30.seconds,
>                 override val orchestrationName: String = "",
>                 override val orchestrationID: String = "",
>                 override val autoScale: Boolean = false) extends FeyGenericActor {
>
>   override def onStart = {
>   }
>
>   override def onStop = {
>   }
>
>   override def onRestart(reason: Throwable) = {
>     // Called after actor is up and running - after self restart
>   }
>
>   override def customReceive: Receive = {
>     case x => log.info(s"Untreated $x")
>   }
>
>   override def processMessage[T](message: T, sender: ActorRef): Unit = {
>   }
>
>   override def execute() = {
>     propagateMessage("Alive")
>   }
>
> }
>
>
>
>
> On Oct 31, 2016, at 9:32 PM, Dennis Jung <in...@gmail.com> wrote:
>
> Hello Tony,
> Thanks for notification. Also, do you have a plan to make dev environment
> for Mac? It seems like it supports Linux only currently.
>
> BR,
> Dennis
>
> 2016-11-01 13:27 GMT+09:00 Tony Faustini <to...@litbit.com>:
>
>> Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow
>> evening to give folks a chance to comment as requested by Justin. Yes the
>> Wiki is quite slow tonight.
>>
>> Thanks
>> -Tony
>>
>> > On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <hz...@gmail.com>
>> wrote:
>> >
>> > Looks good.
>> >
>> > I assume it's in the wiki, but cannot check, the wiki is incredibly
>> slow now.
>> >
>> > Hadrian
>> >
>> > On 11/01/2016 12:12 AM, Tony Faustini wrote:
>> >> iota
>> >>
>> >> Open source system that enables the orchestration of IoT devices.
>> >>
>> >> iota has been incubating since 2016-01-20.
>> >>
>> >> Three most important issues to address in the move towards graduation:
>> >>
>> >>  1. Building the developer community
>> >>  2. Outreach at events outside the Apache ecosystem to inform and
>> invite participation in the project
>> >>  3. Better leadership of the project itself
>> >>
>> >> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
>> >> aware of?
>> >>
>> >> Committers are still very interested in seeing this podling develop.
>> >>
>> >> How has the community developed since the last report?
>> >>
>> >> Slowly - mainly 4 individuals that are contributing in spurts of
>> activity. This needs to become consistent with better online leadership.
>> >>
>> >> How has the project developed since the last report?
>> >>
>> >> Technical contributions have been made and will continue to be  made
>> but there is a need engage and articulate the vision and architecture more
>> actively on the mailing lists.
>> >>
>> >> Date of last release:
>> >>
>> >>  Not released yet - had discussed an initial release at the end of
>> this year but will need to see a stronger ecosystem develop to facilitate
>> such a goal.
>> >>
>> >> When were the last committers or PMC members elected?
>> >>
>> >> 10 months ago
>> >>
>> >> Signed-off-by:
>> >>
>> >>  [ ](iota) Daniel Gruno
>> >>  [ ](iota) Sterling Hughes
>> >>  [ ](iota) Justin Mclean
>> >>  [ ](iota) Hadrian Zbarcea
>> >>
>> >> Shepherd/Mentor notes:
>> >>
>> >>
>>
>>
>
>

Re: Mac Development environment for iota ....

Posted by Tony Faustini <to...@litbit.com>.
Hi Dennis, great question. I do all my development for Iota using the IntelliJ community edition so there is a Mac development environment and it works well. One thing that I have been thinking about but haven’t gotten around to is producing a video that would show you how to setup an Intellij environment download iota and start developing iota performers using Scala/Akka. You can run the iota engine on devices as small as a Raspberry or as large as a Mesos cluster. That’s we we do at Litbit. Here is an example of what you would use Intellij to output

1) a set of jar files one for each performer
2) An orchestration which is essentially the network of interacting performers

You could run this on any JVM

Here are some examples of orchestrations (Performers not included)

Here is test orchestration that shows a single performer that is configured to consume from a Kafka cluster - The orchestration doesn’t connect it to anything so it doesn’t do much.

{
  "guid" : "KAFKA-CONSUMER-10",
  "command" : "CREATE",
  "timestamp": "21326329079",
  "name" : "ORCHESTRATION FOR TEST",
  "ensembles" : [
    {
      "guid":"KAFKA-CONSUMER-ENS",
      "command": "NONE",
      "performers":[
        {
          "guid": "KAFKA-PERFORMER-10",
          "schedule": 0,
          "backoff": 0,
          "autoScale": 4,
          "source": {
            "name": "fey-kafka-10.jar",
            "classPath": "org.apache.iota.fey.performer.Kafka_Consumer",
            "parameters": {
              "topic":"test-10p",
              "consumer_number": "2",
              "kafka_properties":"{\"bootstrap.servers\": \"localhost:9092\", \"key.deserializer\": \"org.apache.kafka.common.serialization.StringDeserializer\", \"value.deserializer\":\"org.apache.kafka.common.serialization.StringDeserializer\"}"
            }
          }
        }
      ],
      "connections":[]
    }
  ]
}
Here is a more complex orchestration that runs on a RaspberryPi. It takes the input of many sensors and send them to a ZMQ performer that publishes them. It could equally have been an MQTT or ActiveMQ performer

{
  "guid": "MAESTRO-3",
  "command": "RECREATE",
  "timestamp": "7919767890",
  "name": "DESCRIPTION",
  "ensembles": [
    {
      "guid": "TEMPERATURE",
      "command": "NONE",
      "performers": [
        {
          "guid": "Heartbeat",
          "schedule": 30000,
          "backoff": 0,
          "source": {
            "name": "fey_stream.jar",
            "classPath": "org.apache.iota.fey.performer.Heartbeat",
            "parameters": {
            }
          }
        },
        {
          "guid": "Cherry",
          "schedule": 1000,
          "backoff": 0,
          "source": {
            "name": "fey_cherry_rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"1ed6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.5} ]}",
              "lrns": "[\"1ed6aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "Heartbeat": [
            "Cherry"
          ]
        },
        {
          "Cherry": [
            "ZMQPublisher"
          ]
        }
      ]
    },
    {
      "guid": "PRESSURE",
      "command": "NONE",
      "performers": [
        {
          "comment": "This forces a value to be output every 10 seconds",
          "guid": "Heartbeat",
          "schedule": 10000,
          "backoff": 0,
          "source": {
            "name": "fey_stream.jar",
            "classPath": "org.apache.iota.fey.performer.Heartbeat",
            "parameters": {
            }
          }
        },
        {
          "comment": "The Cherry checks to see if it should output something every 1 second",
          "guid": "Cherry",
          "schedule": 1000,
          "backoff": 0,
          "source": {
            "name": "fey-cherry-rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"3fd7aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.1} ]}",
              "lrns": "[\"3fd7aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "Heartbeat": [
            "Cherry"
          ]
        },
        {
          "Cherry": [
            "ZMQPublisher"
          ]
        }
      ]
    },
    {
      "guid": "HUMIDITY",
      "command": "NONE",
      "performers": [
        {
          "guid": "Heartbeat",
          "schedule": 30000,
          "backoff": 0,
          "source": {
            "name": "fey_stream.jar",
            "classPath": "org.apache.iota.fey.performer.Heartbeat",
            "parameters": {
            }
          }
        },
        {
          "guid": "Cherry",
          "schedule": 1000,
          "backoff": 0,
          "source": {
            "name": "fey_cherry_rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"2fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":5.0} ]}",
              "lrns": "[\"2fd6aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "Heartbeat": [
            "Cherry"
          ]
        },
        {
          "Cherry": [
            "ZMQPublisher"
          ]
        }
      ]
    },
    {
      "guid": "SOUNDDB",
      "command": "NONE",
      "performers": [
        {
          "guid": "Heartbeat",
          "schedule": 10000,
          "backoff": 0,
          "source": {
            "name": "fey_stream.jar",
            "classPath": "org.apache.iota.fey.performer.Heartbeat",
            "parameters": {
            }
          }
        },
        {
          "guid": "Cherry",
          "schedule": 1000,
          "backoff": 0,
          "source": {
            "name": "fey_cherry_rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"7fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":3.0} ]}",
              "lrns": "[\"7fd6aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "Heartbeat": [
            "Cherry"
          ]
        },
        {
          "Cherry": [
            "ZMQPublisher"
          ]
        }
      ]
    },
    {
      "guid": "VIBRATION_AGGREGATE",
      "command": "NONE",
      "performers": [
        {
          "guid": "Heartbeat",
          "schedule": 10000,
          "backoff": 0,
          "source": {
            "name": "fey_stream.jar",
            "classPath": "org.apache.iota.fey.performer.Heartbeat",
            "parameters": {
            }
          }
        },
        {
          "guid": "Cherry",
          "schedule": 1000,
          "backoff": 0,
          "source": {
            "name": "fey_cherry_rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"op\":\"cov\", \"args\":[{\"string\":\"5fd6aed2b028486fa478b3d3f6e7ee61\"}, {\"float\":0.02} ]}",
              "lrns": "[\"5fd6aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "Heartbeat": [
            "Cherry"
          ]
        },
        {
          "Cherry": [
            "ZMQPublisher"
          ]
        }
      ]
    },
    {
      "guid": "VIBRATION",
      "command": "NONE",
      "performers": [
        {
          "guid": "VibrationStream",
          "schedule": 1000,
          "backoff": 0,
          "source": {
            "name": "fey_cherry_rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"didVibrationChange\":\"6fd6aed2b028486fa478b3d3f6e7ee61\"}",
              "lrns": "[\"6fd6aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "VibrationStream": [
            "ZMQPublisher"
          ]
        }
      ]
    },
    {
      "guid": "SOUND_WAV",
      "command": "NONE",
      "performers": [
        {
          "guid": "Cherry",
          "schedule": 3000,
          "backoff": 0,
          "source": {
            "name": "fey_cherry_rp.jar",
            "classPath": "org.apache.iota.fey.performer.CherryRP",
            "parameters": {
              "cherry": "{\"didSoundChange\":\"9fd6aed2b028486fa478b3d3f6e7ee61\"}",
              "lrns": "[\"9fd6aed2b028486fa478b3d3f6e7ee61\"]",
              "host": "192.168.0.17"
            }
          }
        },
        {
          "guid": "ZMQPublisher",
          "schedule": 0,
          "backoff": 0,
          "source": {
            "name": "fey_zmq.jar",
            "classPath": "org.apache.iota.fey.performer.ZMQPublisher",
            "parameters": {
              "zmq_port": "5559",
              "zmq_target": "192.168.0.139"
            }
          }
        }
      ],
      "connections": [
        {
          "Cherry": [
            "ZMQPublisher"
          ]
        }
      ]
    }
  ]
}
Here is a very simple performer that operators on a schedule specified in an orchestration and simple passes the string “Alive” to anything that it is connected to i the orchestration that uses it.

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.apache.iota.fey.performer

import akka.actor.ActorRef
import org.apache.iota.fey.FeyGenericActor

import scala.collection.immutable.Map
import scala.concurrent.duration._

class Heartbeat(override val params: Map[String, String] = Map.empty,
                override val backoff: FiniteDuration = 1.minutes,
                override val connectTo: Map[String, ActorRef] = Map.empty,
                override val schedulerTimeInterval: FiniteDuration = 30.seconds,
                override val orchestrationName: String = "",
                override val orchestrationID: String = "",
                override val autoScale: Boolean = false) extends FeyGenericActor {

  override def onStart = {
  }

  override def onStop = {
  }

  override def onRestart(reason: Throwable) = {
    // Called after actor is up and running - after self restart
  }

  override def customReceive: Receive = {
    case x => log.info(s"Untreated $x")
  }

  override def processMessage[T](message: T, sender: ActorRef): Unit = {
  }

  override def execute() = {
    propagateMessage("Alive")
  }

}



> On Oct 31, 2016, at 9:32 PM, Dennis Jung <in...@gmail.com> wrote:
> 
> Hello Tony,
> Thanks for notification. Also, do you have a plan to make dev environment for Mac? It seems like it supports Linux only currently.
> 
> BR,
> Dennis
> 
> 2016-11-01 13:27 GMT+09:00 Tony Faustini <tony@litbit.com <ma...@litbit.com>>:
> Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow evening to give folks a chance to comment as requested by Justin. Yes the Wiki is quite slow tonight.
> 
> Thanks
> -Tony
> 
> > On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <hzbarcea@gmail.com <ma...@gmail.com>> wrote:
> >
> > Looks good.
> >
> > I assume it's in the wiki, but cannot check, the wiki is incredibly slow now.
> >
> > Hadrian
> >
> > On 11/01/2016 12:12 AM, Tony Faustini wrote:
> >> iota
> >>
> >> Open source system that enables the orchestration of IoT devices.
> >>
> >> iota has been incubating since 2016-01-20.
> >>
> >> Three most important issues to address in the move towards graduation:
> >>
> >>  1. Building the developer community
> >>  2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
> >>  3. Better leadership of the project itself
> >>
> >> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> >> aware of?
> >>
> >> Committers are still very interested in seeing this podling develop.
> >>
> >> How has the community developed since the last report?
> >>
> >> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
> >>
> >> How has the project developed since the last report?
> >>
> >> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
> >>
> >> Date of last release:
> >>
> >>  Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
> >>
> >> When were the last committers or PMC members elected?
> >>
> >> 10 months ago
> >>
> >> Signed-off-by:
> >>
> >>  [ ](iota) Daniel Gruno
> >>  [ ](iota) Sterling Hughes
> >>  [ ](iota) Justin Mclean
> >>  [ ](iota) Hadrian Zbarcea
> >>
> >> Shepherd/Mentor notes:
> >>
> >>
> 
> 


Re: Here is a draft of the November iota report - feedback welcome

Posted by Dennis Jung <in...@gmail.com>.
Hello Tony,
Thanks for notification. Also, do you have a plan to make dev environment
for Mac? It seems like it supports Linux only currently.

BR,
Dennis

2016-11-01 13:27 GMT+09:00 Tony Faustini <to...@litbit.com>:

> Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow
> evening to give folks a chance to comment as requested by Justin. Yes the
> Wiki is quite slow tonight.
>
> Thanks
> -Tony
>
> > On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <hz...@gmail.com> wrote:
> >
> > Looks good.
> >
> > I assume it's in the wiki, but cannot check, the wiki is incredibly slow
> now.
> >
> > Hadrian
> >
> > On 11/01/2016 12:12 AM, Tony Faustini wrote:
> >> iota
> >>
> >> Open source system that enables the orchestration of IoT devices.
> >>
> >> iota has been incubating since 2016-01-20.
> >>
> >> Three most important issues to address in the move towards graduation:
> >>
> >>  1. Building the developer community
> >>  2. Outreach at events outside the Apache ecosystem to inform and
> invite participation in the project
> >>  3. Better leadership of the project itself
> >>
> >> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> >> aware of?
> >>
> >> Committers are still very interested in seeing this podling develop.
> >>
> >> How has the community developed since the last report?
> >>
> >> Slowly - mainly 4 individuals that are contributing in spurts of
> activity. This needs to become consistent with better online leadership.
> >>
> >> How has the project developed since the last report?
> >>
> >> Technical contributions have been made and will continue to be  made
> but there is a need engage and articulate the vision and architecture more
> actively on the mailing lists.
> >>
> >> Date of last release:
> >>
> >>  Not released yet - had discussed an initial release at the end of this
> year but will need to see a stronger ecosystem develop to facilitate such a
> goal.
> >>
> >> When were the last committers or PMC members elected?
> >>
> >> 10 months ago
> >>
> >> Signed-off-by:
> >>
> >>  [ ](iota) Daniel Gruno
> >>  [ ](iota) Sterling Hughes
> >>  [ ](iota) Justin Mclean
> >>  [ ](iota) Hadrian Zbarcea
> >>
> >> Shepherd/Mentor notes:
> >>
> >>
>
>

Re: Here is a draft of the November iota report - feedback welcome

Posted by Tony Faustini <to...@litbit.com>.
Hi Hadrian, It’s not on the Wiki yet - will put it there by tomorrow evening to give folks a chance to comment as requested by Justin. Yes the Wiki is quite slow tonight.

Thanks
-Tony

> On Oct 31, 2016, at 9:24 PM, Hadrian Zbarcea <hz...@gmail.com> wrote:
> 
> Looks good.
> 
> I assume it's in the wiki, but cannot check, the wiki is incredibly slow now.
> 
> Hadrian
> 
> On 11/01/2016 12:12 AM, Tony Faustini wrote:
>> iota
>> 
>> Open source system that enables the orchestration of IoT devices.
>> 
>> iota has been incubating since 2016-01-20.
>> 
>> Three most important issues to address in the move towards graduation:
>> 
>>  1. Building the developer community
>>  2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>>  3. Better leadership of the project itself
>> 
>> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
>> aware of?
>> 
>> Committers are still very interested in seeing this podling develop.
>> 
>> How has the community developed since the last report?
>> 
>> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
>> 
>> How has the project developed since the last report?
>> 
>> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
>> 
>> Date of last release:
>> 
>>  Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
>> 
>> When were the last committers or PMC members elected?
>> 
>> 10 months ago
>> 
>> Signed-off-by:
>> 
>>  [ ](iota) Daniel Gruno
>>  [ ](iota) Sterling Hughes
>>  [ ](iota) Justin Mclean
>>  [ ](iota) Hadrian Zbarcea
>> 
>> Shepherd/Mentor notes:
>> 
>> 


Re: Here is a draft of the November iota report - feedback welcome

Posted by Hadrian Zbarcea <hz...@gmail.com>.
Looks good.

I assume it's in the wiki, but cannot check, the wiki is incredibly slow 
now.

Hadrian

On 11/01/2016 12:12 AM, Tony Faustini wrote:
> iota
>
> Open source system that enables the orchestration of IoT devices.
>
> iota has been incubating since 2016-01-20.
>
> Three most important issues to address in the move towards graduation:
>
>   1. Building the developer community
>   2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>   3. Better leadership of the project itself
>
> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> aware of?
>
> Committers are still very interested in seeing this podling develop.
>
> How has the community developed since the last report?
>
> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.
>
> How has the project developed since the last report?
>
> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.
>
> Date of last release:
>
>   Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.
>
> When were the last committers or PMC members elected?
>
> 10 months ago
>
> Signed-off-by:
>
>   [ ](iota) Daniel Gruno
>   [ ](iota) Sterling Hughes
>   [ ](iota) Justin Mclean
>   [ ](iota) Hadrian Zbarcea
>
> Shepherd/Mentor notes:
>
>

Re: Here is a draft of the November iota report - feedback welcome

Posted by Justin Mclean <ju...@classsoftware.com>.
Hi,

Thanks for posting this to the dev list.
> Three most important issues to address in the move towards graduation:
> 
>   1. Building the developer community
>   2. Outreach at events outside the Apache ecosystem to inform and invite participation in the project
>   3. Better leadership of the project itself
IMO Leadership is not the issue, having the committers/PPMC involved in the mailing list seems to be more of an issue. Apache projects don’t have leaders as such, but the PPMC can lead by example by being more active here.

> 
> Any issues that the Incubator PMC (IPMC) or ASF Board wish/need to be
> aware of?
> 
> Committers are still very interested in seeing this podling develop.
Is this an issue the board needs to be aware of? Not really IMO.  The two issues I would possibly list are a) there may be off list activity / lack of discussion on the mailing list b) user's pull requests not being address in a timely way.
> 
> How has the community developed since the last report?
> 
> Slowly - mainly 4 individuals that are contributing in spurts of activity. This needs to become consistent with better online leadership.

There has also been increased user interest and questions on the mailing list. I’d would  drop the sentence re “better online leadership”.

> 
> How has the project developed since the last report?
> 
> Technical contributions have been made and will continue to be  made but there is a need engage and articulate the vision and architecture more actively on the mailing lists.

+1 to that.
> 
> Date of last release:
> 
>   Not released yet - had discussed an initial release at the end of this year but will need to see a stronger ecosystem develop to facilitate such a goal.

Why not just make a 0.1 alpha stye release? I don't see any need to wait for the ecosystem to grow and making a release could actually facilitate that.

> 
> When were the last committers or PMC members elected?
> 
> 10 months ago
Is this actually the case? AFAIK no committers or PMC member have been voted in past the initial group.

Thanks,
Justin