Interestingly...if I drop your vulcanized.js file into my solution, I have
the same bug as I've previously reported. If I drop the platform.js in
instead, everything works fine. So, there's still something else that's
different...and it's a silent fail scenario because I get no errors in the
console, but my custom elements don't work correctly. Any ideas on why that
might be?


On Wed, Jan 22, 2014 at 5:04 PM, Eric Bidelman <[email protected]> wrote:

> These videos are great Scott. Very helpful. Rob and I talked about
> shortening them a bit and overlaying some commentary.
>
> If people are interested in building + using a single .min.js file for a
> polyfill, it's basically the same procedure. Instead of enumerating the
> sources for the polyfill, install the node modules and build with Grunt.
> Example building the Custom Elements polyfill:
>
>     bower install Polymer/CustomElements
>
>     cd bower_components/CustomElements
>
>     npm install
>
>     grunt
>
> ...gets you custom-elements.min.js
>
>
> On Wed, Jan 22, 2014 at 10:52 AM, Rob Eisenberg <
> [email protected]> wrote:
>
>> Thanks Scott! I'll take a look at this soon.
>>
>>
>> On Wed, Jan 22, 2014 at 1:49 PM, Scott Miles <[email protected]> wrote:
>>
>>> Erps, actual 'vulcanizing' video link:
>>>
>>> http://www.youtube.com/watch?v=FvFfJ0ODj0Y&feature=youtu.be
>>>
>>>
>>> On Wed, Jan 22, 2014 at 10:48 AM, Scott Miles <[email protected]>wrote:
>>>
>>>> Remixing the polyfills is supposed to be relatively easy.  I assume the
>>>> devil is in the details, so I made a couple of screen captures of me
>>>> starting from a blank folder and building up functionality, ultimately
>>>> constructing a single js file containing the platform remix.
>>>>
>>>> remixing:
>>>> http://www.youtube.com/watch?v=MfZxqONVzJA&feature=youtu.be
>>>>
>>>> vulcanizing the js:
>>>> http://www.youtube.com/watch?v=MfZxqONVzJA&feature=youtu.be
>>>>
>>>> The resulting files are zipped up here:
>>>> https://drive.google.com/file/d/0BwsasHLO95kdQXQzLTN2czFjVW8/edit?usp=sharing
>>>>
>>>> Tools used: Node, Bower, Terminal, Notepad, Browser.
>>>>
>>>> IMO, Bower is preferred over Git here, because we are read-only users
>>>> in this context, and we can take advantage of the dependency fetching.
>>>>
>>>> The videos are kinda blurry (sorry!) and I there is no commentary. I
>>>> figured we can do progressive refinement on these materials if they are
>>>> found to be useful.
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Jan 21, 2014 at 5:15 PM, Rob Eisenberg <
>>>> [email protected]> wrote:
>>>>
>>>>> Thanks for the feedback. Part of what I'm creating is similar to
>>>>> x-tags, but with my own spin, based on my own experience building large
>>>>> scale componentized UI. For now, while I'm prototyping, I think I'll just
>>>>> use the platform.js file...but eventually I'm going to have to figure out
>>>>> how to do a custom build without the shadow dom pieces.
>>>>>
>>>>>
>>>>> On Tue, Jan 21, 2014 at 7:04 PM, <[email protected]> wrote:
>>>>>
>>>>>> Rob,
>>>>>>
>>>>>> I asked a similar question about the "necessity" of the Shadow DOM a
>>>>>> few months ago -
>>>>>> https://groups.google.com/forum/?fromgroups=#!topic/polymer-dev/oVWSsMhFDnc.
>>>>>> Basic upshot was although the polyfills themselves don't have a
>>>>>> *dependency* on the Shadow DOM, Polymer depends on it, and it will
>>>>>> be used if you use platform.js as well, even if you are only planning on
>>>>>> using part of the platform like custom elements.
>>>>>>
>>>>>> If you are looking for simple, non-shadow DOM pre-built library,
>>>>>> x-tags is maybe the way to go (although from my experience, the x-tag
>>>>>> community is way less active). It is the biggest issue we have with 
>>>>>> Polymer
>>>>>> - the shadow DOM polyfill is a bit invasive, and degrades performance - 
>>>>>> in
>>>>>> our case, polymer doubles the time to load a page compared to x-tags. We
>>>>>> have decided we will need to try "re-package" parts of the Polymer 
>>>>>> platform
>>>>>> in our own library to get the performance characteristics we require, 
>>>>>> which
>>>>>> is a shame, because I really like the library and the layer of sugar it
>>>>>> provides.
>>>>>>
>>>>>> Regards,
>>>>>> Ian
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tuesday, January 21, 2014 8:45:49 AM UTC+11, Rob Eisenberg wrote:
>>>>>>
>>>>>>> I think I can answer my own #3 question. Looks like the easiest way
>>>>>>> to do this is to use pull-all.sh
>>>>>>> I'd still like to know about the necessity of shadow dom and any
>>>>>>> availability of pre-built platform libraries.
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Jan 20, 2014 at 4:35 PM, Rob Eisenberg <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> Ok. I found that just a few minutes ago. It looks like there are
>>>>>>>> lots of little pieces that may be missing from what I've got. I've got 
>>>>>>>> a
>>>>>>>> few questions:
>>>>>>>>
>>>>>>>> 1. I purposefully excluded the shadow dom pieces from my build. Do
>>>>>>>> you see any problems with that? Should custom elements still work, 
>>>>>>>> assuming
>>>>>>>> I'm not using shadow dom at all?
>>>>>>>> 2. Where can I find the latest build of platform.js? Let's say I
>>>>>>>> just want to make my life easy for now...and not do my own build. 
>>>>>>>> Where do
>>>>>>>> I get latest? None of the github releases seem to have any actual built
>>>>>>>> libraries in them.
>>>>>>>> 3. Any advice on building this thing? There are tons of
>>>>>>>> repositories. It seems like a major effort to track them all and keep 
>>>>>>>> an
>>>>>>>> updated build happening...thoughts?
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Jan 20, 2014 at 4:27 PM, Scott Miles <[email protected]>wrote:
>>>>>>>>
>>>>>>>>>  The build is sadly non-trivial, but you can start with the
>>>>>>>>> manifest here:
>>>>>>>>>
>>>>>>>>> https://github.com/Polymer/platform-dev/blob/master/build.json
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jan 20, 2014 at 12:21 PM, Rob Eisenberg <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> There's definitely a difference between my custom build of the
>>>>>>>>>> pollyfills and platform.js. When I replace my build with 
>>>>>>>>>> platform.js, I see
>>>>>>>>>> the correct behavior. I would just use platform.js, but there's some 
>>>>>>>>>> stuff
>>>>>>>>>> in there I don't think I need..and I'm trying to get things down as 
>>>>>>>>>> small
>>>>>>>>>> as possible. Can someone point me to the build file for platform.js? 
>>>>>>>>>> I'd
>>>>>>>>>> like to see if I can figure out what the real difference is.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thursday, January 16, 2014 12:13:59 PM UTC-5, Rob Eisenberg
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I had a pretty nice custom element system build on the
>>>>>>>>>>> pollyfills from Stable release 2013-11-07  When I updated to 0.1.2,
>>>>>>>>>>> everything broke. I've been going throughout, fixing things bit by 
>>>>>>>>>>> bit, but
>>>>>>>>>>> now I'm to a point where I'm wondering if there's something wrong 
>>>>>>>>>>> with
>>>>>>>>>>> Polymer. It seems as if custom element binding are being evaluated 
>>>>>>>>>>> before
>>>>>>>>>>> the element is upgraded. I'm not sure about that, but I can't 
>>>>>>>>>>> explain the
>>>>>>>>>>> behavior I'm seeing any other way. Here's my custom element test 
>>>>>>>>>>> code:
>>>>>>>>>>>
>>>>>>>>>>> var proto = Object.create(HTMLElement.prototype);
>>>>>>>>>>>
>>>>>>>>>>> proto.createdCallback = function () {
>>>>>>>>>>>     this.customAttributes = {};
>>>>>>>>>>>     console.log('created');
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> proto.attachedCallback = function() {
>>>>>>>>>>>     console.log('attached');
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> proto.bind = function(name, value, oneTime) {
>>>>>>>>>>>     console.log('bind', name, value, oneTime);
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> proto.setAttribute = function(name, value) {
>>>>>>>>>>>     console.log('setAttribute', name, value);
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> proto.attributeChangedCallback = function(attrName, oldVal,
>>>>>>>>>>> newVal) {
>>>>>>>>>>>     console.log('attribute changed', attrName, oldVal, newVal);
>>>>>>>>>>> };
>>>>>>>>>>>
>>>>>>>>>>> Object.defineProperty(proto, 'something', {
>>>>>>>>>>>     get: function () {
>>>>>>>>>>>         return this.customAttributes['something'];
>>>>>>>>>>>     },
>>>>>>>>>>>     set: function (val) {
>>>>>>>>>>>         this.customAttributes['something'] = value;
>>>>>>>>>>>         console.log('something change', value);
>>>>>>>>>>>     }
>>>>>>>>>>> });
>>>>>>>>>>>
>>>>>>>>>>> document.registerElement('dx-test', { prototype: proto });
>>>>>>>>>>>
>>>>>>>>>>> Then I use it inside of one of my templates like this:
>>>>>>>>>>>
>>>>>>>>>>> <dx-test something="{{someProperty}}"></dx-test>
>>>>>>>>>>>
>>>>>>>>>>> When I do this, the only callback that is fired is *createdCallback
>>>>>>>>>>> * and by then it seems to have already parsed the bindings out.
>>>>>>>>>>> This prevents me from having any custom *bind* logic and even
>>>>>>>>>>> from reliably getting the value of my own property. If
>>>>>>>>>>> *something* is not a primitive value, then attribute's value is
>>>>>>>>>>> the result of *toString().*
>>>>>>>>>>>
>>>>>>>>>>> Am I doing something wrong here? Is this a bug?
>>>>>>>>>>>
>>>>>>>>>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>>>>>>>>>> ---
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "Polymer" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to [email protected].
>>>>>>>>>>  To view this discussion on the web visit
>>>>>>>>>> https://groups.google.com/d/msgid/polymer-dev/70e68a23-
>>>>>>>>>> a5aa-4b1a-8b7e-48de9604325a%40googlegroups.com.
>>>>>>>>>>
>>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Rob Eisenberg,
>>>>>>>> President - Blue Spire
>>>>>>>> www.durandaljs.com
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Rob Eisenberg,
>>>>>>> President - Blue Spire
>>>>>>> www.durandaljs.com
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Rob Eisenberg,
>>>>> President - Blue Spire
>>>>> www.durandaljs.com
>>>>>
>>>>
>>>>
>>>  Follow Polymer on Google+: plus.google.com/107187849809354688692
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "Polymer" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/polymer-dev/puRMCV1-8nI/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>>
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/polymer-dev/CAHbmOLZxfQq4yDfnPUtuXY%3DvL2h3N3ckKFfuqbw%2BPHkvb7O_5A%40mail.gmail.com
>>> .
>>>
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>
>>
>> --
>> Rob Eisenberg,
>> President - Blue Spire
>> www.durandaljs.com
>>
>> Follow Polymer on Google+: plus.google.com/107187849809354688692
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Polymer" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/polymer-dev/CAMsr9Pm2FAycLjknWzuLLmEkMyveKhrz6YJnws0u-y7AdzH3AA%40mail.gmail.com
>> .
>>
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>


-- 
Rob Eisenberg,
President - Blue Spire
www.durandaljs.com

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/CAMsr9PkFkOkAO9K804cG66GroNELJaQ1F96hfFsfK1KLy%3D5qaw%40mail.gmail.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to