The device: how about a light bulb I can cheaply get at Amazon? I want 
something real to interact with. You're thinking about building services. I'm 
thinking about consuming them. That's step 1 for most devs. Focus on turning a 
bulb on and off, then brightness etc. A real bulb. Not something fakes with 
screen pixels or a diode on a pi I have to setup first. Make the first step 
easy and only focus on the client part. Most people don't produce hardware but 
work on the client apps. That's not what the raspberry is for.

Second: bazel?!? Let me double click and open a solution and hit build in 
visual studio, the step through the code so I can understand jt. Forgot command 
line. It's not easy enough for step one. Don't make me learn another build 
system as step 1. That's losing people immediately.

Next: there's platform APIs like Java. Where's the off client APIs hosted on 
maven that I just reference? Or .net APIs on nuget? Or all the other places app 
developers generally get their APIs for extending their apps.


From: Gregg Reynolds
Sent: Tuesday, June 5, 4:26 PM
Subject: Re: [dev] Where are the devs?
To: Morten Nielsen
Cc: iotivity-dev




On Tue, Jun 5, 2018, 3:10 PM Morten Nielsen <[email protected]<mailto:[email protected]>> 
wrote:
Short answers to this:
Raspberri isn't a consumer device. I need a lamp, or something else that's a 
real-world consumer product.
Let us have cheap real things to play with not dev toys.

Consumers do not write code. Devs love rpi. If you want devs, make rpi easy.

That said, how do you want to pick the consumer device? You pick it, I'll make 
it trivially easy to use it with Iotivity.

Second you obviously have a very non-windows approach to things.

Bazel has excellent windows support.

Be careful with that attitude. There's a large dev community who likes to open 
solutions and hit "run" to compile and build. Don't underestimate the Visual 
Studio community. It's huge. Make it easy for them on Windows.
Also many platforms doesn't build the components - they just reference them. 
Asking people to build those components first is ridiculous

There's a misunderstanding here. With Bazel I do not "build iotivity first".  
Bazel does that for me - *if* necessary. I just build my app. The first time, 
all the deps get built too. Thereafter, only what has changed.

and yet another step where you lose people. Remember that these people spend 
their spare time and want successes quickly or you lose them.

Bazel overall is the fastest build system I've ever used, and I've used most of 
them.

Sure it's all easy for you, but you live and breathe this every day.

What's easier than "bazel build myapp"?

/Morten
From: Gregg Reynolds <[email protected]<mailto:[email protected]>>
Sent: Tuesday, June 5, 2018 3:33:51 PM
To: Morten Nielsen
Cc: iotivity-dev
Subject: Re: [dev] Where are the devs?



On Fri, Jun 1, 2018, 4:18 PM Morten Nielsen <[email protected]<mailto:[email protected]>> 
wrote:
AllJoyn seemed to do a little better in this regard. A few things I saw they 
did that I feel OCF is lacking:

A broadly available product like LIFX for developers to play with.
The obvious choice is Raspberry Pi. The problem is tooling. You can find 
tutorials on the web but they all involve building Iotivity *on* the pi - a 
major pain, IMHO, and almost certain to frighten away many devs.

This is where Bazel solves a problem. Here's how I build an OpenOCF app for rpi:

./bin/rpi_config.sh arm8

(unfortunately source config is not - yet - integrated in the build logic)

bazel build myapp --config=rpi-arm8.

Of course you have to have a cross-compile toolchain (I use crosstool-NG), but 
you only have to do that once, and it's not very hard.

Then a simple scp command installs the app on the rpi and off you go.

(BTW I've got everything in resources/ building and running under Bazel, 
including tests and examples. Haven't yet added the cross-build stuff. Working 
on a draft submission, maybe next weekend.)

Very easy developer tooling to build devices and clients.
Two things: tools for building and tools for exploring/learning/debugging.

As for the latter: working on it. A dev-centric app that makes it easy for a 
dev to examine an OCF network. Exposes all the gory details of messages, 
payloads, etc. so you don't have to rummage around in debug logs. Some of the 
example apps do something like this, but as they are undocumented and opaque I 
don't find them very helpful.

Two apps, actually, one with an ncurses interface, one a flutter app (Android 
only atm, maybe someday iOS).


Pre-compiled bits. Don’t make me compile everything.
I think this is over-rated. It all depends on the tooling. With Scons, yes, a 
pain. With Bazel, compiling everything is probably easier and faster (and 
definitely more reliable) than downloading and configuring precompiled 
binaries. Anyway, with Iotivity's many build options I think precompiled 
binaries is not such a good idea. Maybe a security risk too.

Blog posts.
That'll happen when devs take an interest.

G


Reply via email to