Naming the project

2014-02-20 Thread Romain Testard

Hi all,

Thanks for your input regarding re-naming the project.
This came to a draw between Loop and Archway and we decided that Loop is 
a good name for the WebRTC application project (the product name will be 
different).
Loop is concise, fits all of Andreas requirements and can be turned into 
a verb just like you do with Skype (Loop me in).


So please use "Loop" to name the project moving forward - a Wiki using 
the Loop name will be created and I'll be in touch with some of you to 
get that going.


If you see any issues with it please let me know!

Romain
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: WebRTC Service: On temporary call URLs

2014-02-20 Thread Alexis Métaireau
Adam, thanks for starting this discussion,

Le 20/02/2014 04:52, Adam Roach a écrit :
> Putting this together, what we want is something that semantically
> evaluates to:
>
> http://authority/action/url-format-version/{serial
> #,caller,callee,expiration,hmac} 
As Martin points out, URLs should not represent actions, they should
represent things.

On the experiment we made with Romain Gauthier and Nicolas Perriault, we
went ahead and chose the following scheme:

# A "*" means this URI requires authentication (a valid token from the token 
server,
# which contains user id).

* POST /call-url/  →  Create the call url a callee can click on.
  GET  /calls/{token}  →  Get the app (that's the url in question, which
  displays an app)
  POST /calls/{token}  →  Add an incoming call (does a simple push notif
  and gets room tokens)
* GET  /calls/ →  List incoming calls for the authenticated user.

{token} was something that is containing the user id of the callee plus
a . I don't understand why we're trying to put information about the
caller here, since we don't know who is this.

In your proposal, I don't understand what is the "serial #", and
especially why it can't replace the version as you specify it.

It seems straightforward to just have a serial number (randomly
generated and not auto incremented, because auto increment is harder to
scale) that we can revoke if needed.

It means that before displaying the app and accepting a call (we can
also chose one of them only), we will have to check in the database if
this serial # is still a valid one.

We could let the user chose what's the duration of their call-url, and
default to something specified in a configuration file if the user don't
specify anything.

> Ideally, we also want the ability to identify multiple versions of URL
> encodings, should we decide to migrate to include an enhanced scheme
> in the future. 

If you're thinking about having multiple versions of the service running
at once, then I think this shouldn't be handled this way. When you ask
for a node to the token server, you ask for a particular version of the
service, and you get an endpoint to this service.

This allows us to not have to deal with multiple versions of the API in
the server code. If that's not what you're refering to, can you provide
more info?

— Alexis
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


User Stories now enabled for "Talkilla" (aka Loop) product in Bugzilla

2014-02-20 Thread Mark Banner
As of this morning, the "Talkilla"* product now has the User Stories
extension added to it in Bugzilla.

The extension provides:

  * A User Story field just under the attachments box
  * The User story field can be updated by anyone
  * History is kept for the user story field

The intention is that the User story field is the Canonical description
of the bug - as we define and flesh out the bug the field can be updated
to provide exactly what the bug is about, without needing to go through
all the comments.

For those that worked on Talkilla, this is exactly the same as how we
used the description field on Trello.

Mark

* Talkilla as that's what we're using. We'll need to get this renamed at
some stage (and/or move components to various other locations like FF
desktop etc)


smime.p7s
Description: S/MIME Cryptographic Signature
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: webrtc constraints

2014-02-20 Thread ben
Any progress on bandwidth/webrtc constraints control in firefox yet?




On Thursday, July 4, 2013 1:48:12 AM UTC+2, bryand...@gmail.com wrote:
> FF 22 does not seem to honor the video constraints passed to getUserMedia:
> 
> 
> 
> getUserMedia(
> 
> {audio:true,video:{mandatory:{maxWidth:320,maxHeight:240}}}
> 
> ,gotStream
> 
> ,noStream);
> 
> 
> 
> Also, the b=AS:xxx that I put into the offer SDP for audio and video seems
> 
> to have no effect at limiting bandwidth,
> 
> 
> 
> Is there any way to limit resolution, frame rate and bandwidth in Firefox's
> 
> WebRTC?
> 
> 
> 
> Thanks
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Github PRs - Bugzilla & Reviews

2014-02-20 Thread Mark Banner
On 19/02/2014 23:48, Eric Rescorla wrote:
> On Wed, Feb 19, 2014 at 3:31 PM, Adam Roach  wrote:
>>  * We will use github pull requests to ensure that patches are reviewed
>>prior to landing.
>>
> 
> I missed this decision, but it's not really matching what I would have
> expected.
> 
> Rather, I would have expected that every patch would correspond to
> a bugzilla bug, that we would do reviews in bugzilla, and github pushes
> would come with r= as we do now...

We discussed it briefly and said that pull requests would correspond to
bugs, and when we commit, we can put in r=, plus the bug number.
There's a webhook we can then enable, that will automatically post to
the bug and even close the bug if we want to (see snippet below).

For the reviews, for the server side code that would reside in github,
we indicated that doing reviews direct on the github PRs would be fine.

Personally I think the main requirement here is that we have proper
review, and that it is linked to the appropriate bug i.e. traceable. I
think we should use whatever mechanism we find appropriate/easiest to
handle those reviews.


Obviously for Firefox code, we'll need to follow the normal bugzilla +
patch + review mechanism, regardless of whether mercurial or git are used.

Mark.

= Start Bugzilla githook information =

This service hook posts comments on Bugzilla bugs when commit messages
reference a bug by id number.

Bugs are recognised by the following formats, which are case-insensitive:

Ticket 123
Bug 123
Tracker item 123

Multiple bugs can also be specified by separating them with a comma,
apersand, plus or "and":

Bug 123, 124 and 125

If the "Integration Branch" option is filled in, only commits to that branch
will result in bugs being modified. This is useful for disabling
premature bug
closing/comments when working on feature branches.

If "Integration Branch" is not set, commits to all branches will be
processed. If you only want to update Bugzilla when you push to your "main"
branch: you probably want to set this to "master".

If the central repository option is enabled and there is a "fix",
"close", or "address" before the bug then that bug is closed.

If a commit has already been mentioned in the bug comments when pushed
by another user then a comment isn't made, unless the central repository
option is enabled. In this case only the first line of the commit message
is included in the bug comment.

This hook requires Bugzilla version >= 3.4 to function correctly
and >= 4.0 to be able to close bugs.

= End Bugzilla githook information =



smime.p7s
Description: S/MIME Cryptographic Signature
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: WebRTC Service: On temporary call URLs

2014-02-20 Thread Adam Roach

On 2/20/14 04:54, Alexis Métaireau wrote:

Adam, thanks for starting this discussion,

Le 20/02/2014 04:52, Adam Roach a écrit :

Putting this together, what we want is something that semantically
evaluates to:

http://authority/action/url-format-version/{serial
#,caller,callee,expiration,hmac}

As Martin points out, URLs should not represent actions, they should
represent things.


Sure, for most of the HTTP interactions, this is true, and it's a good 
principle in general. The way I was viewing this was that the handed-out 
call URLs (unlike other operations we're performing) weren't going to be 
idempotent: accessing the resource twice would create two calls. In 
traditional HTTP design, this would typically be relegated to something 
like POST, but we can't pass around URLs with an embedded method in a 
well-supported way.


That said, I see that the GET/POST proposal you have addresses this in a 
more resource-based fashion, and agree that it's a cleaner way to handle 
URLs.



On the experiment we made with Romain Gauthier and Nicolas Perriault, we
went ahead and chose the following scheme...

# A "*" means this URI requires authentication (a valid token from the token 
server,
# which contains user id).

* POST /call-url/  →  Create the call url a callee can click on.
   GET  /calls/{token}  →  Get the app (that's the url in question, which
   displays an app)
   POST /calls/{token}  →  Add an incoming call (does a simple push notif
   and gets room tokens)
* GET  /calls/ →  List incoming calls for the authenticated user.

{token} was something that is containing the user id of the callee plus
a . I don't understand why we're trying to put information about the
caller here, since we don't know who is this.


Keep in mind that the nominal user experience for this, once we get to 
MVP, will be rooted in an address book. I'll have my list of contacts, 
which includes phone numbers and email addresses. When an address book 
user is activated by a user, we'll check whether the contact info 
corresponds to a Loop user. If so, we place a call in that direction; 
otherwise, we offer to create a "call me" URL and (if possible) deliver 
it using the contact means (email or phone/SMS) corresponding to the 
address book entry. So, when we create the URL, we'll know who the user 
intends to give it to.


This is important because it allows us to say "You have an incoming call 
from Alexis" rather than "You have an incoming call from some random 
person." The delivery of calling party identity is simply considered 
table stakes for a communications service nowadays [1].



In your proposal, I don't understand what is the "serial #", and
especially why it can't replace the version as you specify it.


The "serial number" is different for each and every URL issued, and is 
used for revocation purposes.


The "version" allows us to transition between schemes in the future, if 
we need to change the properties of the URL -- it allows us to 
unambiguously change the format of the {token} [2]. For example, if we 
decide to re-key the HMAC, we can increase the version number. The same 
goes if we decide to add fields, encode them differently, or even go to 
a completely different design (such as a sparse key into a database 
table). It gives us an "out" to reconsider the design of the token if it 
doesn't meet future needs.



It seems straightforward to just have a serial number (randomly
generated and not auto incremented, because auto increment is harder to
scale) that we can revoke if needed.


Sure, random would work, as long as we have sufficiently low chance of 
collision. It would be a pretty big error if revocation of one URL 
caused a different URL to also be revoked because they shared the same 
random identifier.



It means that before displaying the app and accepting a call (we can
also chose one of them only), we will have to check in the database if
this serial # is still a valid one.


If I understand you correctly, you're describing an intended feature of 
the system, not a problem: the check for revocation of a serial # is 
part of the revocation mechanism.



We could let the user chose what's the duration of their call-url, and
default to something specified in a configuration file if the user don't
specify anything.


Right, that's the intention.


Ideally, we also want the ability to identify multiple versions of URL
encodings, should we decide to migrate to include an enhanced scheme
in the future.

If you're thinking about having multiple versions of the service running
at once, then I think this shouldn't be handled this way. When you ask
for a node to the token server, you ask for a particular version of the
service, and you get an endpoint to this service.

This allows us to not have to deal with multiple versions of the API in
the server code. If that's not what you're refering to, can you provide
more info?


It's not multiple ver

Re: Naming the project

2014-02-20 Thread Martin Thomson
I think that this fails one of the basic criterion that Andreas laid out.  
Namely, that it can very easily be mistaken for a product name.  I can imagine 
taking this to a public announcement.

On 2014-02-20, at 00:57, Romain Testard  wrote:

> Hi all,
> 
> Thanks for your input regarding re-naming the project.
> This came to a draw between Loop and Archway and we decided that Loop is a 
> good name for the WebRTC application project (the product name will be 
> different).
> Loop is concise, fits all of Andreas requirements and can be turned into a 
> verb just like you do with Skype (Loop me in).
> 
> So please use "Loop" to name the project moving forward - a Wiki using the 
> Loop name will be created and I'll be in touch with some of you to get that 
> going.
> 
> If you see any issues with it please let me know!
> 
> Romain
> ___
> dev-media mailing list
> dev-media@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-media

___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: Architecture Decisions and Action Items for User-Facing WebRTC Project

2014-02-20 Thread nperriault
On Thursday, February 20, 2014 12:31:53 AM UTC+1, Adam Roach wrote:

>   * L: *Nicolas* to examine use of client libraries (jQuery, Backbone)
> to determine how much effort we're likely to save versus the effort
> of ensuring we can run the libraries safely in the context of
> elevated privileges.

So I've started a pad on this here https://webrtc-apps.etherpad.mozilla.org/109

It's in markdown format and is a bit more comfortably readable as rendered html 
here (frozen state): 
https://www.dropbox.com/s/9zmz82hemwrf6eo/frontend-engineering.md

Any feedback, thoughts are welcome.

++

--
Nicolas Perriault
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: Naming the project

2014-02-20 Thread Christopher Lee
Hi all,

I would say that *if* the majority of the team agreed to this, let's move 
forward with this name.  

I know it's unlikely we're going to have everyone happy with a project name.  
The point of 'it could be a product name' is very subjective given some very 
strange startup product names out there that I would clearly thought were 
internal names.  :)

Chris


On Feb 20, 2014, at 9:33 AM, Martin Thomson  wrote:

> I think that this fails one of the basic criterion that Andreas laid out.  
> Namely, that it can very easily be mistaken for a product name.  I can 
> imagine taking this to a public announcement.
> 
> On 2014-02-20, at 00:57, Romain Testard  wrote:
> 
>> Hi all,
>> 
>> Thanks for your input regarding re-naming the project.
>> This came to a draw between Loop and Archway and we decided that Loop is a 
>> good name for the WebRTC application project (the product name will be 
>> different).
>> Loop is concise, fits all of Andreas requirements and can be turned into a 
>> verb just like you do with Skype (Loop me in).
>> 
>> So please use "Loop" to name the project moving forward - a Wiki using the 
>> Loop name will be created and I'll be in touch with some of you to get that 
>> going.
>> 
>> If you see any issues with it please let me know!
>> 
>> Romain
>> ___
>> dev-media mailing list
>> dev-media@lists.mozilla.org
>> https://lists.mozilla.org/listinfo/dev-media
> 

___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: Naming the project

2014-02-20 Thread Byron Campen
You know, we might be able to have our cake and eat it too. Just 
call it PTS, and pretend it is an acronym.


Byron

On 2/20/14 9:55 AM, Christopher Lee wrote:

Hi all,

I would say that *if* the majority of the team agreed to this, let's move 
forward with this name.

I know it's unlikely we're going to have everyone happy with a project name.  
The point of 'it could be a product name' is very subjective given some very 
strange startup product names out there that I would clearly thought were 
internal names.  :)

Chris


On Feb 20, 2014, at 9:33 AM, Martin Thomson  wrote:


I think that this fails one of the basic criterion that Andreas laid out.  
Namely, that it can very easily be mistaken for a product name.  I can imagine 
taking this to a public announcement.

On 2014-02-20, at 00:57, Romain Testard  wrote:


Hi all,

Thanks for your input regarding re-naming the project.
This came to a draw between Loop and Archway and we decided that Loop is a good 
name for the WebRTC application project (the product name will be different).
Loop is concise, fits all of Andreas requirements and can be turned into a verb 
just like you do with Skype (Loop me in).

So please use "Loop" to name the project moving forward - a Wiki using the Loop 
name will be created and I'll be in touch with some of you to get that going.

If you see any issues with it please let me know!

Romain
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media

___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: WebRTC Service: On temporary call URLs

2014-02-20 Thread Dan Mosedale

On Thu Feb 20 09:15:15 2014, Adam Roach wrote:


Keep in mind that the nominal user experience for this, once we get to
MVP, will be rooted in an address book. I'll have my list of contacts,
which includes phone numbers and email addresses. When an address book
user is activated by a user, we'll check whether the contact info
corresponds to a Loop user. If so, we place a call in that direction;
otherwise, we offer to create a "call me" URL and (if possible)
deliver it using the contact means (email or phone/SMS) corresponding
to the address book entry. So, when we create the URL, we'll know who
the user intends to give it to.

This is important because it allows us to say "You have an incoming
call from Alexis" rather than "You have an incoming call from some
random person." The delivery of calling party identity is simply
considered table stakes for a communications service nowadays [1].


I'm confused.  Isn't the main use case for the "call me link" making it 
very easy for someone
who doesn't already have an account to become engaged enough with our 
tool that they will be interested in upgrading to get an account to get 
the better user experience you're describing?


Otherwise how do we expect to convince enough people to bother to 
create a Firefox account, given that the network benefits (i.e. the 
systems that all your contacts are already reachable on) have already 
accrued in other systems that are believed to be relatively well-liked 
(viz Skype, mobile phone)?


Dan


In your proposal, I don't understand what is the "serial #", and
especially why it can't replace the version as you specify it.


The "serial number" is different for each and every URL issued, and is
used for revocation purposes.

The "version" allows us to transition between schemes in the future,
if we need to change the properties of the URL -- it allows us to
unambiguously change the format of the {token} [2]. For example, if we
decide to re-key the HMAC, we can increase the version number. The
same goes if we decide to add fields, encode them differently, or even
go to a completely different design (such as a sparse key into a
database table). It gives us an "out" to reconsider the design of the
token if it doesn't meet future needs.


It seems straightforward to just have a serial number (randomly
generated and not auto incremented, because auto increment is harder to
scale) that we can revoke if needed.


Sure, random would work, as long as we have sufficiently low chance of
collision. It would be a pretty big error if revocation of one URL
caused a different URL to also be revoked because they shared the same
random identifier.


It means that before displaying the app and accepting a call (we can
also chose one of them only), we will have to check in the database if
this serial # is still a valid one.


If I understand you correctly, you're describing an intended feature
of the system, not a problem: the check for revocation of a serial #
is part of the revocation mechanism.


We could let the user chose what's the duration of their call-url, and
default to something specified in a configuration file if the user don't
specify anything.


Right, that's the intention.


Ideally, we also want the ability to identify multiple versions of URL
encodings, should we decide to migrate to include an enhanced scheme
in the future.

If you're thinking about having multiple versions of the service running
at once, then I think this shouldn't be handled this way. When you ask
for a node to the token server, you ask for a particular version of the
service, and you get an endpoint to this service.

This allows us to not have to deal with multiple versions of the API in
the server code. If that's not what you're refering to, can you provide
more info?


It's not multiple versions of the application; it's multiple versions
of the URL field format. At any given moment, any single version of
the server application running would be expected to be able to parse
the current URL format, plus any of the previous URL formats that have
been issued within the ${max_url_duration} seconds.

Yes, this requires some conditional logic in the server code when (if)
we decide to change to change the token format, but that should be
pretty lightweight.


[1] cf.
http://pimcore-1872623517.us-east-1.elb.amazonaws.com/infoservices/resources/whitepapers/whats-next-in-caller-identification-services#.UwYya8dn9N0


[2] Since the current plan is for all tokens to be time-bounded with a
known maximum possible duration, the general means of transitioning
from token format "n" to token format "n+1" would be to introduce the
new format on the new version number; have both formats running
side-by-side for this maximum possible duration; and then retire
format "n" altogether.




___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


Re: WebRTC Service: On temporary call URLs

2014-02-20 Thread Adam Roach

On 2/20/14 12:08, Dan Mosedale wrote:

On Thu Feb 20 09:15:15 2014, Adam Roach wrote:


Keep in mind that the nominal user experience for this, once we get to
MVP, will be rooted in an address book. I'll have my list of contacts,
which includes phone numbers and email addresses. When an address book
user is activated by a user, we'll check whether the contact info
corresponds to a Loop user. If so, we place a call in that direction;
otherwise, we offer to create a "call me" URL and (if possible)
deliver it using the contact means (email or phone/SMS) corresponding
to the address book entry. So, when we create the URL, we'll know who
the user intends to give it to.

This is important because it allows us to say "You have an incoming
call from Alexis" rather than "You have an incoming call from some
random person." The delivery of calling party identity is simply
considered table stakes for a communications service nowadays [1].


I'm confused.  Isn't the main use case for the "call me link" making 
it very easy for someone
who doesn't already have an account to become engaged enough with our 
tool that they will be interested in upgrading to get an account to 
get the better user experience you're describing?


The "better user experience" you call out *is* for the user with an 
account, for whom we presumably want as pleasant an experience as possible.


The user *without* an account still has to deal with activating the link 
that has been provided to them. In fact, from the perspective of the 
user *without* an account, there will be literally zero difference in 
experience between the system I describe and one without this feature.


--
Adam Roach
Principal Platform Engineer
a...@mozilla.com
+1 650 903 0800 x863
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media


WebRTC service database selection

2014-02-20 Thread Martin Thomson
Looking at database backends for the data we’re talking about storing, these 
are the ranked concerns that I have heard:

1. availability
2. performance
3. consistency and partition tolerance

Basically, if the service is up, that’s good.  The data that we are hold here 
is either very short lived (that related to the push) or easily repaired 
(device registrations of push URLs).

It’s a little more difficult when we get to revocation of URIs, or storing of 
state for URIs, but I’m going to leave that for a later discussion.

The main concern that I have here is service availability in light of data 
centre failures.  In my experience, this happens far more often than is 
acceptable.  For reference, when I was at Skype, Microsoft had numbers that 
were pretty close to their promise of 99.9% availability.

But I need to emphasise this - 99.9% is not good enough for a whole system.  
99.99% might be.  And the cloud platform is a component of a system, the 
overall availability will be lower.

So geographic distribution of data is critical.  This is managed with varying 
degrees of sophistication by the different storage systems.  The biggest part 
is how they trade off responsiveness and fault recovery.  If updating a row 
requires a cross-geography request, that’s going to be slow, but it means that 
you get very good failure characteristics.  At the same time, it can also mean 
that you are unable to perform updates in certain types of failure scenario.

The key feature - one that most databases provide - is the ability to tune this 
to application needs.  We’re going to want to tune this initially so that 
updates don’t depend on full replication, since we care more about availability 
and performance than consistency and partition tolerance.

Run-down of options

Now, I have only a small amount of background with these specific items 
unfortunately, my experience is with stuff that I believe some of you might 
think to be poisonous, plus some stuff we just can’t use.  Nonetheless, here 
are what I believe to be the high runner options:

MongoDB

This is very widely used, readily deployed to the cloud platform of your choice 
and it has a pretty good story when it comes to performance.

Mongo does have a geographic redundancy story.  It’s not covered in glory, but 
nor is it entirely embarrassing.

I’m less encouraged by the characteristics of the geographic redundancy 
features; replica sets can only be statically configured to prefer local 
communication, which means that a failure in the local cluster will result in 
cross-geo operations for all requests that block on replication.  I’m also a 
little concerned about how placement is controlled within a cluster.

http://docs.mongodb.org/manual/core/replica-set-architectures/

Cassandra

Cassandra is also widely used, with similar characteristics to Mongo.

This has a larger number of options with respect to geographic redundancy.  The 
topology aware replication mode offers some pretty good opportunities, 
particularly when deployed with a “snitch” that is aware of the deployment 
layout.

http://www.datastax.com/documentation/cassandra/1.2/cassandra/architecture/architectureDataDistributeReplication_c.html

Redis

Redis is probably the simplest option here.  Its high availability option is 
still unstable, so I’m not going to recommend it.

Dynamo

This would tie us to AWS, but it seems like a capable DB.  The problem is that 
in the short time I looked, I couldn’t uncover any details on their geographic 
redundancy story.  That is not encouraging.

Roll your own geo redundancy

This remains a viable option…if you really need the 
performance/availability/other characteristic.  Typically you take an existing 
store (pick one, any one) and you add your own brand of geographic redundancy 
to suit your needs.  This has the advantage of being exactly what you need, but 
the disadvantage of it being a bunch of extra work.  I’m not going to recommend 
this either; but it’s an option that may become worth considering later, unless 
our database friend really pick up their collective game.

Others

I could provide info on memcached(b), Azure, Riak, etc…  All of which have 
their merits, but none of which are really strong contenders for the crown.

Summary

I think that we could make either Mongo or Cassandra work for us.  If we were 
truly serious about storing hard state, then I think Cassandra offers more 
control, but I think that it would be a harder challenge from an operational 
perspective to use and deploy.

At this stage, I’m going to suggest that we pick Mongo, even though I think 
Cassandra might be functionally superior.

As long as we create and maintain a good abstraction for our data store, I 
think that we can switch if needs change.  …always create and maintain a good 
abstraction for stuff like this.
___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media

Re: Architecture Decisions and Action Items for User-Facing WebRTC Project

2014-02-20 Thread Dan Mosedale

On 2/20/14 9:52 AM, nperria...@mozilla.com wrote:

On Thursday, February 20, 2014 12:31:53 AM UTC+1, Adam Roach wrote:


   * L: *Nicolas* to examine use of client libraries (jQuery, Backbone)
 to determine how much effort we're likely to save versus the effort
 of ensuring we can run the libraries safely in the context of
 elevated privileges.

So I've started a pad on this here https://webrtc-apps.etherpad.mozilla.org/109

It's in markdown format and is a bit more comfortably readable as rendered html 
here (frozen state): 
https://www.dropbox.com/s/9zmz82hemwrf6eo/frontend-engineering.md

Any feedback, thoughts are welcome.

This is a really helpful analysis; thanks for writing it up!

Since we're trying to get a fast start here, rather than trying to have 
all these discussions at once (and since a number of them are clearly 
not in the MLP scope), I'd suggest that we start with the highest order 
bit, which as far as I can tell (both

from my gut and from our earlier discussions this week), is the MV* stuff.

I talked to Adam a bit about the security context today, and he 
suggested assuming for now that we're likely to get good enough security 
code partitioning that we'll have the option of moving forward with 
Backbone or something like it if that makes sense.


My understanding (which may or may not be correct), is that there is no 
particular framework for B2G apps generally, and that each one does its 
own thing.


The reason I think talking to James is likely a good next step is 
because I believe he has insight into more than one such Gaia app 
solution, and he has insight into

non-B2G stuff in this space as well.

I'd love to try and get the three of us on a call tomorrow if we can 
make the timing work.  I'll send out an email to see if he might be 
available for such a thing.  But feel free to check for him on IRC if he 
happens to be around before I'm up.  (He's often in #gaia as 
lightsofapollo).


I've been told that tofumatt on #webdev has a bunch of experience with 
backbone on mobile as well, so you might check in with him too.


Dan




___
dev-media mailing list
dev-media@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-media