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
