Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Marcel Holtmann
Hi Slava,

 Does upstream have any interest in providing D-Bus access to all
 configured services, including those that have no network associated
 with it? Before I start writing any code, I would like to know whether
 it's going to be accepted upstream or will remain part of our fork.
 
 Basically the idea is to add available (or whatever you want to call
 it) service property which would be true if it's associated with the
 network, or false otherwise. Which types of services would provide
 access to all services and which only to those that are available, would
 be configurable via the conf file. All D-Bus calls (except for Connect
 obviously) would work for unavailable service just as they do for
 available services.
 
 The main use case is wifi. The user has to be able to see the list of
 configured wifi networks, edit their properties, remove them etc. For
 other types of services it probably doesn't make sense but who knows.
 
 I found a relevant 3+ years old discussion in the archives with some
 patches, the reaction back then wasn't a definite no and yet those
 patches were never applied.
 
 What's the current attitude towards that?

it was a clear no against an Available property. That would be the wrong 
direction to take this. It would also not be backwards compatible and all 
clients would need to understand what that property means to fix their UI. And 
I have seen such an UI in Android. A total disaster and I have no intention to 
put anybody through this.

However back then I said, that exposing these services as object path is fine. 
However the entry point to retrieve them should be something like 
Manager.GetKnownServices or similar. The important part is really to leave 
GetServices and its current semantics alone.

Regards

Marcel

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Tomasz Bursztyka

Hi Slava,


All D-Bus calls (except for Connect
obviously) would work for unavailable service just as they do for
available services.

The main use case is wifi. The user has to be able to see the list of
configured wifi networks, edit their properties, remove them etc. For
other types of services it probably doesn't make sense but who knows.


Isn't it the same behavior as Jolla's phone has?
I still don't get the usefulness of that feature. Why annoying the user with
service he cannot connect to, at a time T?
(why would he feel the need to tweak the parameters if the network is 
not even present?!)


Tomasz
___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


RFC: D-Bus access to all configured services

2015-07-10 Thread Slava Monich
Does upstream have any interest in providing D-Bus access to all
configured services, including those that have no network associated
with it? Before I start writing any code, I would like to know whether
it's going to be accepted upstream or will remain part of our fork.

Basically the idea is to add available (or whatever you want to call
it) service property which would be true if it's associated with the
network, or false otherwise. Which types of services would provide
access to all services and which only to those that are available, would
be configurable via the conf file. All D-Bus calls (except for Connect
obviously) would work for unavailable service just as they do for
available services.

The main use case is wifi. The user has to be able to see the list of
configured wifi networks, edit their properties, remove them etc. For
other types of services it probably doesn't make sense but who knows.

I found a relevant 3+ years old discussion in the archives with some
patches, the reaction back then wasn't a definite no and yet those
patches were never applied.

What's the current attitude towards that?

Regards,
-Slava

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Slava Monich
On 10/07/15 14:51, Marcel Holtmann wrote:
 Hi Slava,

 Does upstream have any interest in providing D-Bus access to all
 configured services, including those that have no network associated
 with it? Before I start writing any code, I would like to know whether
 it's going to be accepted upstream or will remain part of our fork.

 Basically the idea is to add available (or whatever you want to call
 it) service property which would be true if it's associated with the
 network, or false otherwise. Which types of services would provide
 access to all services and which only to those that are available, would
 be configurable via the conf file. All D-Bus calls (except for Connect
 obviously) would work for unavailable service just as they do for
 available services.

 The main use case is wifi. The user has to be able to see the list of
 configured wifi networks, edit their properties, remove them etc. For
 other types of services it probably doesn't make sense but who knows.

 I found a relevant 3+ years old discussion in the archives with some
 patches, the reaction back then wasn't a definite no and yet those
 patches were never applied.

 What's the current attitude towards that?
 it was a clear no against an Available property. That would be the wrong 
 direction to take this. It would also not be backwards compatible and all 
 clients would need to understand what that property means to fix their UI.


Backward compatibility could be provided by having this functionality
off by default. And yes, if you turn it on, you would probably have to
fix your UI.


 And I have seen such an UI in Android. A total disaster and I have no 
 intention to put anybody through this.


My question was about providing D-Bus access to saved services, not the
UI. But since you have touched this topic, forget Android, how would you
implement iPhone-style UI with the current D-Bus interface?

Anyway, I've got the answer I was looking for. Thanks.

-Slava

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Slava Monich
On 10/07/15 14:56, Tomasz Bursztyka wrote:
 Hi Slava,

 All D-Bus calls (except for Connect
 obviously) would work for unavailable service just as they do for
 available services.

 The main use case is wifi. The user has to be able to see the list of
 configured wifi networks, edit their properties, remove them etc. For
 other types of services it probably doesn't make sense but who knows.

 Isn't it the same behavior as Jolla's phone has?


Not quite. The user gets to see the list of saved networks but their
properties are not editable (and not even available in the current UI
but that's purely a UI issue). That's why I asked this question.


 I still don't get the usefulness of that feature. Why annoying the
 user with
 service he cannot connect to, at a time T?
 (why would he feel the need to tweak the parameters if the network is
 not even present?!)


Two scenarios off the top of my head:

1. To see the password (if you have forgotten it) or proxy configuration
(to copy/paste it into the new configuration)
2. To set Favourite to false so that it doesn't get automatically
connected when it becomes available

And generally, if these properties are there and changing them doesn't
break anything, why not to provide access to them, especially if there's
mechanism already in place for it. connman is a piece of middleware, its
job is to provide the functionality and leave it to UI designers to
decide what to show, what not to show and how to present it to the user.

Regards,
-Slava


 Tomasz
 ___
 connman mailing list
 connman@connman.net
 https://lists.connman.net/mailman/listinfo/connman



___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Marcel Holtmann
Hi Slava,

 Does upstream have any interest in providing D-Bus access to all
 configured services, including those that have no network associated
 with it? Before I start writing any code, I would like to know whether
 it's going to be accepted upstream or will remain part of our fork.
 
 Basically the idea is to add available (or whatever you want to call
 it) service property which would be true if it's associated with the
 network, or false otherwise. Which types of services would provide
 access to all services and which only to those that are available, would
 be configurable via the conf file. All D-Bus calls (except for Connect
 obviously) would work for unavailable service just as they do for
 available services.
 
 The main use case is wifi. The user has to be able to see the list of
 configured wifi networks, edit their properties, remove them etc. For
 other types of services it probably doesn't make sense but who knows.
 
 I found a relevant 3+ years old discussion in the archives with some
 patches, the reaction back then wasn't a definite no and yet those
 patches were never applied.
 
 What's the current attitude towards that?
 it was a clear no against an Available property. That would be the wrong 
 direction to take this. It would also not be backwards compatible and all 
 clients would need to understand what that property means to fix their UI.
 
 
 Backward compatibility could be provided by having this functionality
 off by default. And yes, if you turn it on, you would probably have to
 fix your UI.

I am not a huge fan of adding tons of configuration options. These all need to 
be tested and they would make the code more complicated. We are providing 
certain configuration options, because the behavior changes drastically and 
they all have valid use cases. This one it does not fall into that category. 
This one should be solved cleanly and be always enabled.

So the only way to do this is via a separate method call to retrieve all known 
services. It is just a lot of people talked about this, but nobody actually 
implemented it in a clean way. And we never needed this feature in the first 
place.

 And I have seen such an UI in Android. A total disaster and I have no 
 intention to put anybody through this.
 
 
 My question was about providing D-Bus access to saved services, not the
 UI. But since you have touched this topic, forget Android, how would you
 implement iPhone-style UI with the current D-Bus interface?

The UI and the D-Bus API are the same thing. If you read the introduction that 
I wrote a long time ago, then this has been made pretty clear. UI developers 
should be able to map this 1:1 to the UI and forget about all the other details 
since they will be handled for them.

iOS style UI is pretty much exactly what gets exposed via services. You would 
have to go out of your way to create anything more complicated than that.

Regards

Marcel

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Tomasz Bursztyka

Hi Slava,


All D-Bus calls (except for Connect
obviously) would work for unavailable service just as they do for
available services.

The main use case is wifi. The user has to be able to see the list of
configured wifi networks, edit their properties, remove them etc. For
other types of services it probably doesn't make sense but who knows.

Isn't it the same behavior as Jolla's phone has?


Not quite. The user gets to see the list of saved networks but their
properties are not editable (and not even available in the current UI
but that's purely a UI issue). That's why I asked this question.


Ok, could make a bit of sense if the user wants to do some manual cleanups.
Though I guess most of users just don't care probably.


I still don't get the usefulness of that feature. Why annoying the
user with
service he cannot connect to, at a time T?
(why would he feel the need to tweak the parameters if the network is
not even present?!)


Two scenarios off the top of my head:

1. To see the password (if you have forgotten it) or proxy configuration
(to copy/paste it into the new configuration)
2. To set Favourite to false so that it doesn't get automatically
connected when it becomes available

And generally, if these properties are there and changing them doesn't
break anything, why not to provide access to them, especially if there's
mechanism already in place for it.


More code to maintain. It's already hard to provide clean and concise 
API, so providing
more functions, opens even more problems: people tend to use the API 
wrongly :)

The more you expose, the more they will mess with.


  connman is a piece of middleware, its
job is to provide the functionality and leave it to UI designers to
decide what to show, what not to show and how to present it to the user.


That's a debate on its own.

Actually, I don't think UI designers should be the only responsible for 
what to expose on the UI.
It then creates a top-to-bottom dependency, without a proper 
understanding of the lower layers,
which tend to generate more problem with time (from maintaining the API 
to properly architecture

the service etc...).

Tomasz
___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Patrik Flykt
On Fri, 2015-07-10 at 15:45 +0300, Slava Monich wrote:
 1. To see the password (if you have forgotten it) or proxy
 configuration (to copy/paste it into the new configuration)

We wasted a few hours thinking on this once upon a time, and concluded
that we'll either be close to the AP to verify the passphrase is correct
or then we'll have all information a priori 100% correct and are handed
a provisioning file. So the end conclusion was that this is not a very
valid use case.

 2. To set Favourite to false so that it doesn't get automatically
 connected when it becomes available

Technically this is a use case. I have needed something like this when
noticing that a network has gone bad and should not be used, but that
was after the network was in range and being used. A priori deselecting
autoconnect was not found to be a too valid use case either,
unfortunately.

Cheers,

Patrik

___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman


Re: RFC: D-Bus access to all configured services

2015-07-10 Thread Slava Monich
On 10/07/15 16:07, Tomasz Bursztyka wrote:
 Hi Slava,

   connman is a piece of middleware, its
 job is to provide the functionality and leave it to UI designers to
 decide what to show, what not to show and how to present it to the user.

 That's a debate on its own.

 Actually, I don't think UI designers should be the only responsible
 for what to expose on the UI.
 It then creates a top-to-bottom dependency, without a proper
 understanding of the lower layers,
 which tend to generate more problem with time (from maintaining the
 API to properly architecture
 the service etc...).



Like many other things, it's a trade-off. Allowing UI designers to
blindly produce functional requirements may be a pain from the
middleware developer's prospective. On the other hand, letting
developers define their own UI would most likely result in something
chaotic and visually disturbing like your beloved Android UI (which I'm
not actually familiar with but I trust you that it's horrible). Both
parties have to talk to each other but someone has to take care of the
general consistency across the entire UI platform and it's clearly the
job of UI designers.

Regarding connman, it's positioned as portable middleware component for
Linux-based systems. As such, it can't possibly make any assumptions
about the UI. The platform may have no UI at all.

Regards,
-Slava


 Tomasz
 ___
 connman mailing list
 connman@connman.net
 https://lists.connman.net/mailman/listinfo/connman


___
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman