jQuery Mobile Team Meeting – Jun 06 2013

  • Attending: Todd Parker, John Bender, Jasper de Groot, Anne-Gaelle Colom, Gabriel Schulhof, Alex Schmitz, Ghislain Seguin

##Todd

  • We’re focused on 1.4 development
  • Decided to go with SVG icons based on Grunticon after testing because of it’s compatibility with ~100 devices/browsers: View test results
  • Decide on final icon sizes (one vs. 2 size options), black/white, if we dont’ default to the disc bg, setting icons at the swatch level
  • Ideally, we'd let you set per theme swatch: icon color (black/white), icon opacity (0-100%), disc (y/n) and disc color (any hex)
  • New set from Glyphish with ~50 icons will be part of 1.4
  • Team will be meeting in Portland next week

##John Bender

##Jasper de Groot

  • have been working on “next” unit tests; will finish updating last tests tonight
  • been busy with preparations for JQM tutorial and talk at Dutch Mobile Conf (today and tomorrow)
  • will be on vacation right after Portland conf until June 26

##Anne-Gaelle Colom

  • No update... recovering from back problems

##Gabriel Schulhof

  • Fixed tests in ”next” - left some for Jasper (those that deal with theme inheritance)
  • Found some instability in the event sequence based tests - really hard to reproduce.
  • Some bug massaging (#5978,#6014,#6057)
  • Planning on running custom select jQuery selectors through jsperf.

##Ghislain Seguin

  • No update

##Alexander Schmitz

  • New Flip switch widget

  • triage
  • working on getting tests passing again in ext-panels branch
  • working on demos of ui widgets in jqm
  • worked with jorn a bit on cleaning up jenkins
  • fixed random failure in toolbar test

jQuery UI Team Meeting – Jun 05 2013

jQuery Core Team Meeting – Jun 03 2013

Attending: timmywil (married), gibson042, DaveMethvin, m_gol, orkel, gnarf, scott_gonzalez (style discussion)

link jQuery 1.10.2

link jQuery 2.0.3

link 1.10.2/2.0.3

link Can we wait until after Portland for a new release?

  • let's try … gotta monitor the duplicate tix

link Intel wants to help with some optimization issues

  • Rich Winterton profiled with VTune, saw bad JITting behavior
  • But...are any on hot paths?
  • Maybe we can meet with him in person next week?
  • Collab with Intel App Framework

link jQuery 2.1/1.11 changes

  • Discuss at in-person Portland meeting
  • Some thoughts
    • Make Deferreds and Callbacks optional modules
    • Deferred used in .ready() only, never documented
    • Use AMD to do our module builds? snover has a branch
    • needs updates to grunt build
    • optional dependencies (Deferred in .ready) are tricky
    • Does defaultDisplay really solve a problem?
    • Only reliable way is to append, THEN hide. That doesn't cause extra reflows does it?
    • Our "visible" check causes reflows, can we fix that?
    • Need to use display:none vs .offsetHeight/Width
    • Would fix issues like
      visible bug
    • Either changes the meaning of visible, or requires climbing the tree to determine visibility
    • Avoid offsetHeight/Width completely
    • Always a whole number
    • Screws up zoomed results and subpixel rendering
    • Attach data directly to elements for faster teardown

link Style guide updates

  • Grouping parens need space? (i.e., ALL parens need space)
    • If so do all { need trailing newlines?
    • e.g. var x = { test: true } would be invalid
    • Do all ? and : need surrounding space?
    • We tend to do b ? v1 : v2;
    • But we do { test: true } no leading space on colon
  • Dave to make a pull request against the style guide for comment

link Open tickets triage

jQuery Mobile Team Meeting – May 30 2013

  • Attending: Todd Parker, John Bender, Jasper de Groot, Anne-Gaelle Colom, Gabriel Schulhof, Alex Schmitz

link Todd

  • Work on 1.4 continues
  • Thorough testing of SVG (Grunticon) vs. icon fonts is almost done.
    • Initial testing results here
    • Grunticon works on every browser we tested, PNG fallbacks are working great. One bug identified in FF 3-3.6 with the fallback has been logged and already fixed.
    • Icon fonts fail in some key devices (WP7, Opera Mini, old Android) and yield false positives to feature tests.
    • Verdict: I think we should use this over icon fonts for max. compatibility.
  • Portland conference: who’s going? Jasper, Gabriel, Alex, Anne-Gaelle

link John Bender

  • Content widget: latest updates are in issue #5427
  • addresses the pagebeforechange double event
  • change == load + transition
  • you get the string or the object in pagebeforechange depending on what was passed in
  • change is just a wrapper around load and transition
  • all the page* events that come from nav are deprecated as of 1.4, use content* now (contentbeforechange)

link Jasper de Groot

  • Done with refactor in branch "next"
  • Found solution for theme inheritance in popup, collapsible content, etc.
  • Now working on updating tests, docs, etc.

link Anne-Gaelle Colom

  • ported the old meeting notes to meetings.jquery.org (55)

link Gabriel Schulhof

link Alexander Schmitz

jQuery UI Team Meeting – May 29 2013

jQuery Core Team Meeting – May 27 2013

Attending: m_gol, jaubourg, dmethvin, gnarf, orkel

Official Agenda:

link jQuery 1.10.1/2.0.2

link jQuery 2.1/1.11 changes

  • Discuss at in-person Portland meeting?

link Open tickets triage

Ecma/TC39 Meeting – May 23 2013

link May 23 Meeting Notes

(by Erik Arvidsson)

John Neumann (JN), Allen Wirfs-Brock (AWB), Eric Ferraiuolo (EF), Erik Arvidsson (EA), Luke Hoban (LH), Doug Crockford (DC), Yehuda Katz (YK), Sam Tobin-Hochstadt (STH), Alex Russell (AR), Dave Herman (DH) (calling in), Bernd Mathiske (BM), Andreas Rossberg (ARB), Mark Miller (MM), Tom Van Cutsem (TVC), Istvan Sebestyen (IS)

link Promises vs Monads

MM: ...Continuing from yesterday

AR: https://github.com/slightlyoff/Futures/blob/master/Promise.idl

STH: Don't like resolve but not willing to die on this hill.

AR: DOM has a bunch of ad hoc APIs to do promise like things.

YK: Mozilla is also actively working on APIs using promises.

AR: A lot of methods today return void so we can change these to return a promise. This is forward compatible.

AR: then does recursive unwrapping...

link ES6, ES7, ES8... Mark's Strawman Roadmap

LH: The important part is not the features but the process.

AWB: Can things be decoupled?

LH: These kind of structural questions are the important part

MM: Suggests "concurrency" to be the main theme.

AWB: Thought about the event loop. All we need is a processing queue... put things in the front and the back.

DH: Only need to add to the back.

AWB: OK.

STH: The callback is called at some later point.

AR: Don't think we need to specify the order.

STH: If we are going to specify promises etc we need to be able to specify things in detail. We can be loose in ES6 and then come back in ES7 and provide a more tight spec.

DH: We could specify the pending events as a set or something. Not sure if there is a consensus that we want a fast small ES7. Not opposed to a modularized approach.

AR: Are there any browsers that are not shipping stable ES6 features today.

YK: Yes. V8.

AWB: Where we have problem today is that there is a lot of interdependency.

MM: These ("concurrency") are coupled together to the event loop

AWB: We can do it as a separate non 262 spec

DH: Opposed to a separate spec. Introduces versioning confusion.

AWB: Roll up

DH: Think of all the extra overhead.

STH: Big difference with 402 since it was run by different people.

LH: Lack of confidence in new features has been an issue for implementers. Good exceptions were Object.observe and Proxies where the wiki contained a mostly complete spec.

AWB: We need to have wiki proposals be deltas to the spec.

TVC: We could have "stable" wiki pages. These would have complete spec deltas.

DH: Very concerned about over modularizing.

AWB: We need to find a way to work faster and be less monolithic.

DH: Agree. ES6 process has blocked implementation work.

LH: We are not committed to our designs.

STH: We are not resolving issues until we start to spec. We are not getting feedback until engines starts to implement.

EA: The problem is that we didn't start to spec things until very late. We had agreements on features long before there was any spec drafts for them.

YK: More from our champions before we get to concensus.

ARB: Lots of the proposals were very vague.

AWB: The more complete spec you bring to tc39 the better chance you have to reach consensus.

ARB: Lack of early spec leads to lack of early implementations...

AWB: ...which leads to lack of feedback.

LH: Not more work, just doing the work earlier before things pile up too much.

DH: Need to look at the dependency graph. Hold of the work of later feature.

ARB: We need to higher bar before we accept proposals.

MM: What we agreed to 2 years ago was that the features are the one we want to spend work on speccing.

LH: Less features to bite of.

DH: A lot of us have a hard time not getting too engage in too many features.

YK: if we focused more effort on managing the overall complexity instead of getting stuck on a lot of technical discussions (and nit picking).

DH: Object.observe and Proxy moved fast but are fairly isolated features

TVC: Didn't involve syntax.

AWB: With ES6 we had a long backlog.

DH: A language will have smaller and smaller complexity budgets as it grows.

AR: ES future needs events

DH: Since this is Mark's wishlist people will throw in their pet features.

MM: This is the direction I am going to work.

LH: There is a page on the wiki outlining the goals.

LH: Looking for 2 things: Something that would allow earlier implementations. Have not brought proposals (over the last 2 years) because we have been blocked by ES6.

LH: When is the appropriate time to bring new proposals to TC39?

AWB: We are free to do what we want. We can issue 6.1, 6.2 etc or technical reports which would serve as a recommendation.

DH: We cannot exclusively work on ES6.

YK: Time at f2f is the most important. Champions can go off and do what they want.

DH: Suggests adding non ES6 items to the agenda. We will prioritize the non ES6 stuff we can get to given our limited time.

YK: We should reinstate the rule that agenda items needs links to wiki pages.

YK: Spec language is good but examples at the top are a must.

ARB: Add step after proposal. For example "stable" or "spec" which a proposal gets promoted to once there is a spec draft, good enough to start implementing.

DH: Strawman: Anything goes.

YK: Proposals used to mean approved.

DH: 3 sections: strawman, proposal, spec/candidate. Keep strawman. Work on improving as a proposal, and when mature enough promoted to next level.

jQuery Mobile Team Meeting – May 23 2013

  • Attending: Todd Parker, John Bender, Jasper de Groot, Anne-Gaelle Colom, Gabriel Schulhof, Alex Schmitz

link Todd

  • No meeting last week
  • Team is focused on 1.4 work
  • New icon set is coming along nicely
  • Spoke to Dragan who may be able to help us with docs and FAQs, he’s been doing great work on Stack Overflow support

link John Bender

link Jasper de Groot

  • Almost finished with “next”, just few more small things to look into examples of new markup: http://view.jquerymobile.com/next/demos/test/theming/
  • One issue: inheritance of popup theme or collapsible content theme
  • Going to update unit tests, demo center, API docs, 1.4 changelog wiki one widget at the time
  • Also want to create test pages (kitchen sink)

link Anne-Gaelle Colom

link Gabriel Schulhof

  • Starting work on widget cleanup with Alex

link Alexander Schmitz

  • Fixed ability to view directories on jquerymobile.com
  • gnarf added me to infrastructure so any needs we have there i can help with now
  • merged toolbar widget into master
    • page.sections is gone
    • toolbars now work outside pages
    • true persistent toolbars
  • listviews now work outside pages
  • First pass at panels outside pages.
    • in branch ext-panels
    • so far everything seems to be working just need some css tweaks
  • looked into pointer event polyfills
    • will replace vmouse events except for vclick
    • ui starting https://github.com/jquery/jquery-pointer-events
    • looked into other fast click solutions : ours seems to be the most robust currently but we need to make it work with pointer events
    • Going to look into making this update Kinblas agreed to help with anything i need regarding vClick and vMouse
  • Triage & bug fixing

Ecma/TC39 Meeting – May 22 2013

link May 22 Meeting Notes

(by Erik Arvidsson)

John Neumann (JN), Allen Wirfs-Brock (AWB), Eric Ferraiuolo (EF), Erik Arvidsson (EA), Luke Hoban (LH), Doug Crockford (DC), Yehuda Katz (YK), Brendan Eich (BE), Sam Tobin-Hochstadt (STH), Alex Russell (AR), Dave Herman (DH) (calling in), Bernd Mathiske (BM), Andreas Rossberg (ARB), Mark Miller (MM), Tom Van Cutsem (TVC), Istvan Sebestyen (IS), Jasvir Naga (JNA)

link 4.16 Spec update

http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts

YK: ToPositiveInteger is needed by JSIDL

AI(YK+AWB): Put an algorithm in the spec that DOM can use so that we get the same behavior in JS and DOM.

6 General implementation experiences

ARB: We started implementing generators but things are pretty smooth.

BE: Doing modules at the moment.

AWB: Bunch of bug fixes in the spec related to classes.

link 4.9 Template Strings (Template Literals)

MM: Suggests status quo.

AR: Objects

MM: Controversy related to tag-less templates. Alternatives include making tag-less templates an error, delayed evaluation (contextually provided)

AR: Econics: naked interpolation is too attractive. Should always have a tag to encourage users to think about which behavior is correct.

YK: I cannot support Alex's proposal.

STH: What would the name of this tag be?

AR: Something that is imported from a module.

STH: Concerned about short names and conflicts.

YK: People will just use 's' without thinking.

YK: People should use HTML templating engines.

DC: Alex's testimony about application developer feedback is relevant.

LH: it sounded like Google engineers were using a template system

EA: Correct.

MM: Does anyone prefer taking out TS if they don't get tag-less TS?

Everyone: Agrees that it is better to require tag than to remove TS from ES6.

AR: Strings are always used later in some context. Communicating the intent

AWB: String concat vs string interpolation have the same issue.

LH: Assumes that maybe only 20% of the uses of TS are susceptible to XSS

MM: Removing tag-less does not reduce XSS because people will just use

1
s`...`

TS helps people transition to a better world. Once they have have a TS it will be easy to add an html tag at the front as needed.

ST: It will be painful to import String raw and alias that to s.

MM: Maybe put tag-less in appendix? Withdrawn idea because no one likes it.

YK: You should not have use string based APIs.

AR: Willing to abstain but "Y'all are making a big mess"

BM: Half convinced by Alex.

LH: Different code bases will use different tags for normal string interpolation so moving between code bases will be hard to.

AR: That is a good thing. Forces people to think.

MM: Template strings in E.

STH: Lots of contexts where XSS is not an issue.

BM: More ways to XSS is a bad thing.

BE: if people have to import s then the economics change and people will stick to +

link Consensus/Resolution:

  • AR and BM sustains.
  • Continue with the status quo (tag-less TS is supported)

link JSON

DC: IETF wants to change JSON

MM: The 2 documents should have exactly the same text except for boilerplate.

IS: Should it be done in TC39?

DC: Most of the work will be on the mailing lists

AWB: Who will be the editor?

DC: Hopes they (IETF) will provide an editor.

JN: Should this be fast tracked to ISO?

DC: That makes sense.

JN: How long do you expect this to take?

DC: Has taken a long time to coordinate and get started. 5.1 specs the 2 functions that uses the JSON format.

link 4.10 Modules

STH: Progress since last meeting. Discuss "module naming", "naming standard modules". http://wiki.ecmascript.org/doku.php?id=harmony:modules Wiki is up to date with the current proposal. Spec is "wiki complete".

Jason Orendorff of Mozilla has worked on flushing out semantic issues. Moz is implementing parsing of modules.

STH: Syntax: Made a couple of changes.

A. To support anonymous exports

1
2
3
export default expr;
import $ from "jquery"; // imports default anonymous export

If there is no default then the above is an error

1
2
3
import {ajax} from "jquery";
import {ajax as A} from "jquery";

to reduce confusion and to make it clear that this is not destructuring.

1
module fs from "js/fs"
  • fs is a module instance object

The following is not valid:

1
import {...} from fs; // SyntaxError

Renaming on export:

1
2
3
let foo = 13;
export { foo as bar };
export { foo };

The following is not valid:

1
export foo;

STH: The only evaluation here is "13". The rest are just bindings that are shared with the outside/module importer.

MM: Bad idea to allow external modules to assign to imports.

DH: Imported bindings are read only to the importer.

AWB: This is new semantics to the language. Is there a list of these new semantics modules introduce?

AWB: Is there a way to get the default export from the instance module obejct.

STH: There will be a well known symbol name to get to it.

AWB: Does module instance objects inherit from Object.prototype.

DH: No. Because we do not want any pollution.

JNA: Is it an error to assign to an imported binding?

1
2
import {ajax} from "jquery";
ajax = 14; // Error

AR: What is the reason for not extending Object.prototype or some other object?

YK: To prevent people from expecting toString to be there (???)

DH: fs.readFile We don't want to statically check this deeply inside an expression.

1
fs.toString

THS: The plan is to allow the above to be a static error in the future.

DH: To keep things clean.

AWB: Concerned about the dot operator

ARB: Don't want less checking if you do not use import.

DH: Do not want refactoring hazards.

ARB: This only affect the static semantics.

AWB: Can you use square bracket?

STH: Square bracket is dynamic.

AR: This is only a static check that is lost. At runtime there will still be errors.

LH: Concerned about default export. Now people will have to decide which approach to use.

STH: This is already the case in Node.js today.

LH: Today you might get any object, it might be callable with properties.

1
2
3
4
5
6
7
8
var fs = require("fs"); // module instance
var glob = require("glob"); // function with properties
var parse = require("parse"); // function
module fs from "fs";
import glob from "glob";
import {sync} from "glob";
import parse from "parse";

Lots of discussion...

1
import {sync} from "glob";

alt

1
2
3
import glob from "glob";
var {sync} = glob;
import {ajax} from "jquery";

LH: Prefers export = and lose static checking when people opt in to single anonymous export.

STH/YK: We already agreed that we want static checking.

LH: Even for new things being built, this is causing a confusion.

AWB: It is unclear when and what you want to export as the default export.

BM: Wants

1
import default $ from "jquery"

...to ensure that people have to be explicit about what they import.

DH: This is just syntax and we are wasting time "bikeshedding"

AWB: What is the best practice? Is there a single module containing Map, Set & WeakMap or...

YK: WeakMap should be its own import:

1
import WeakMap from "collections/WeakMap";

BE: We have to pay attention to what Node/AMD do today.

YK: AMD tries to make modules small to reduced byte size of the dependencies.

STH: And now to semantics https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js

Major things that changed. Use options object more consistently. The wiki page is up to date. Need to decide whether the browser loader is in the appendix or if it is in some w3c spec. Want core language semantics to treat the names as strings, not the semantics of these strings. Bulk loading. One HTTP request to load multiple modules. Possible to implement. Create fecth hook. Stores module notations in a side table. In the xhr response, split the result and call the different fulfill hooks.

EF: Sounds like what we do today in YUI loaders. How would you write the HTML?

DH: Initial script tag with configuration. Second script tag as usual. Alt 2 is to have configuration and dynamic module load in the same script block.

1
2
3
4
<script>
ondemand
</script>
<script src="main.js" async></script>

alt 2

1
2
3
4
<script>
ondemand
System.require("main.js", function() { .... });
</script>

DH: script[async] today have to use an external src.

STH: Naming and declarations of modules.

ARB: Presenting slides...

AWB: The rate that internal vs external names changes is very different.

STH:

1
2
3
4
5
6
module "m" { ... }
module "n" {
import x from "m";
...// this part is not executed.
}
import x from "m";

STH: Configuration step is mostly about other people's code.

1
2
3
4
5
6
7
8
9
<script>
module "m" { ... }
module "n" {
import m from "m";
function f() {
Loader.eval("import m from 'n'");
}
}
</script>

m is fixed at compile time

ARB: Not opposed to logical modules. Wants both lexical and logical

DH: Not opposed to lexical modules.

YK: Too late to work out lexical modules for ES6.

ARB: If we wait we will have redundancy.

YK: Want declarative form to be able to prefetch etc.

BE: I want lexical modules (in the future) but logical modules are easier to use.

ARB: Since I don't seem to be able to convince anyone I'm going to drop this

ARB: For the record. Major concern about the global registry becoming the new global object.

link Consensus/Resolution:

  • Move along with Dave and Sam's proposal.
  • Work on lexical modules for ES7