HNHacker News
TopNewBestAskShowJobs

mnemonik

4,596 karma · joined August 22, 2008

submissionscomments
mnemonik··on Firefox 31 for developers
Still in progress, follow along here: https://bugzilla.mozilla.org/show_bug.cgi?id=970517
mnemonik··on FTL: WebKit’s LLVM-based JIT
A work around is to pass a foreign function into your asm.js module to do allocations for you, but then you have to either implement your own GC, do reference counting, or just come up with some hand rolled lifetime management.

I'm also interested in how asm.js could be improved in this regard without moving away from its existing barebones model. Would love to hear ideas.

I think the first thing we will see is shared array buffers between workers because games really need that.

mnemonik··on Show HN: Fast.js – faster reimplementations of native JavaScript functions
A lot of it has to do with crossing boundaries between C++ and the JIT'd code and losing things like inlining. Doesn't really have to do with JS warts.

This would likely get even faster if you manually specialized a map/forEach/etc for each caller, but then you might as well just write the loop out by hand: http://rfrn.org/~shu/2013/03/20/two-reasons-functional-style...

mnemonik··on Passwords in plain text
I filed a bug and it was closed waiting for mailman 3 to ship :-/
mnemonik··on Om Sweet Om: functional front-end engineering with ClojureScript and React
While we're on the subject, here's my super nitpicky complaint abour mori: the use of snake_case when almost all JS is camelCase.

In the simple little project where I used mori, I did this:

    const {
      get,
      conj,
      js_to_clj: map,
      clj_to_js: pretty
    } = mori;
But I bet you lose a surprisingly large number of JS devs due to just having the "wrong" names. Maybe I should publish a camel-case-mori module on npm...
mnemonik··on Firebug 2.0
I'm working on these tools now, finishing up initial platform work, should start on business logic/UI fairly soon here and get a version 0 out soon.

See http://fitzgeraldnick.com/weblog/54/ for some implementation details.

mnemonik··on Firebug 2.0
And for Firefox Developer Tools, we have the Scratchpad. I like ours better due to the keyboard shortcuts for eval/display/inspect/re-eval function/etc, but I may be biased ;)

https://developer.mozilla.org/en-US/docs/Tools/Scratchpad

Much of the new JS that I write these days starts as a scratchpad that I evolve over many iterations, right in the browser.

mnemonik··on Firefox Developer Tools – Editable box model, Sublime Text keys
Thanks for taking the time to file the bug, this helps a lot!
mnemonik··on Firefox Developer Tools – Editable box model, Sublime Text keys
I have a huge smile on my face :)

See also the Get Involved page for devtools: https://wiki.mozilla.org/DevTools/GetInvolved

mnemonik··on Firefox Developer Tools – Editable box model, Sublime Text keys
We have it in the sidebar but not the tree. Its coming though: https://bugzilla.mozilla.org/show_bug.cgi?id=920141
mnemonik··on Firefox Developer Tools – Editable box model, Sublime Text keys
New one, please: https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&c...

I understand if your app is proprietary and you can't share the source, but even non-minimal test cases are much better than no test case :)

Thanks!

mnemonik··on Firefox Developer Tools – Editable box model, Sublime Text keys
We had some source map performance issues a while back, but I fixed all the ones that were reported. If you have a test case and steps to reproduce, I'd love to take a look :)
mnemonik··on Firefox Developer Tools – Editable box model, Sublime Text keys
Sounds like your windows copy of firefox might be the main release channel. The numeric status codes have been in since 30 (currently Beta). You can hop on Aurora (or Beta, or Nightly, but Aurora is generally best for web devs), or just wait about 6 weeks for the next uplift.

https://bugzilla.mozilla.org/show_bug.cgi?id=972054

mnemonik··on ECMAScript 6 support in Mozilla
Yeah, pretty much the only time you want non-arrow functions is for prototype methods (but once ES6 classes are implemented, you can use that syntax and it will be less verbose anyways). In almost every other case you either don't care about `this` or you want to use the containing function's `this` value. Arrow functions are perfect for these cases.
mnemonik··on Firefox 29
You might like the unload tab addon: https://addons.mozilla.org/en-US/firefox/addon/unloadtab/
mnemonik··on Firefox 29
:D

We have a light and dark theme; you can toggle back and forth via the options panel (the little cog sprocket thing top left)

mnemonik··on Firefox 29
Want to try on the latest release? I can't reproduce with Release (29) or Nightly (32) on 10.9. If you can give some solid STR and a test case we can investigate further, but as it is now, this isn't very actionable from our end :-/
mnemonik··on Firefox 29
> The whole resources view

https://bugzilla.mozilla.org/show_bug.cgi?id=926449

Here's a screencap of the WIP (ignore the text): https://bug970517.bugzilla.mozilla.org/attachment.cgi?id=841...

> JavaScript profiling (heap, cpu, events)

We have CPU profiling now, but we are in the process of reworking the UI to make it more useful and include a better presentation for events and how they fit into that picture.

I'm working on memory tooling. Here is some more info: http://fitzgeraldnick.com/weblog/54/

And here is a design mockup (won't be exactly like this): https://people.mozilla.org/~dhenein/devtools/memtools/#/memo...

> DOM events monitoring and breakpoints.

We have break on dom events already: http://i.imgur.com/RDy7BXy.jpg

What do mean by monitoring? Would be interested in hearing more about what you're talking about and the use cases.

> JavaScript code completion

We have had this in the console for a long time, and it is coming in the scratchpad very soon: https://bugzilla.mozilla.org/show_bug.cgi?id=968896

mnemonik··on Firefox 29
> I just tried and your developer tools don't cause the tab to freeze for 1 second every time I switched into the tab.

Can you give steps to reproduce and a test case? Which panel do you have active? What URL are you on?

mnemonik··on Functional Programming in JavaScript is Garbage
> The issue with immutable data is not that Javascript's model is confusing, it's that there is no way to write "this array is immutable." Without that guarantee, you can't allow multiple data structures to reference the same copy of data because the data might get modified unexpectedly.

FWIW, |Object.freeze| does it but unfortunately it disables some optimizations.

> There is a similar issue with tail calls. The compiler could replace calls in tail position with jumps, but it's important that this be part of the language spec. Without a guarantee in the language spec, code that runs fine on one system may blow up with a stack overflow on another.

Tail calls are part of ES6.

Regarding the garbage point brought up by the OP, with regards to point-free programming: generational gc makes it so that short lived objects are super cheap; I suspect it isn't a bottleneck in 99% of use cases and in the remaining cases you can refactor your code appropriately.

Agreed, of course, that if JS were designed to be functional from the ground up it would make coding in the paradigm a lot easier. Pretty much a tautology.

mnemonik··on Firefox Dev Tools: Box model highlighter, Web Console improvements
https://bugzilla.mozilla.org/show_bug.cgi?id=771339
mnemonik··on Firefox Dev Tools: Box model highlighter, Web Console improvements
You can use Cmd+E to re-evaluate individual functions: http://fitzgeraldnick.com/weblog/52/

As far as full live editing goes, we have some refactoring and infrastructure work that needs to happen first that also blocks things like properly debugging eval'd strings and dynamically appended scripts. Its pretty high on our priority list and should be coming soonish!

mnemonik··on Firefox Dev Tools: Box model highlighter, Web Console improvements
Like we aren't working on all those things ;)
mnemonik··on Beyond Source Maps
Perfect example of why having an extensible format is so important! It should be easy to just add a new debugging annotation for dynamic bindings without changing the format at all!
mnemonik··on Beyond Source Maps
> 1) if the annotations are present in the shipped obfuscated code, it leaks information that people don't want. Many people do not want to leak the source filenames or directory structure of production apps.

You would be able to continue using the approach you describe for GMail. There is no reason to publicly serve the debugging information unless you want to.

> 2) it increases the download size for consumers who are not developers and don't need the maps

No, the debugging information would still be an auxiliary file like it is now.

3) if written out as a separate file that co-exists with a stripped binary, it increases memory requirements of the debugger.

Debuggers need to keep the source map around now, anyways; this is no different.

Regarding the scope identifiers: it would solve scoping for the most part, but it fails to handle the last three requirements I defined:

- It should provide a way for the JavaScript debugger to display values in a meaningful way.

- It should optionally provide an eval capability, for use from a REPL, watch expression, or conditional breakpoint.

- The format should be future-extensible. That is, when SourceMap.next v2 rolls out, any SourceMap.next v1 consumer should still be able to parse and use instances of SourceMap.next v2 (although without the new features, of course).

Inspecting values would still be a pain, and you wouldn't have watch expressions or conditional breakpoints, etc.

Also, much of the value in what I described in the blog post is the future-extensible format. It allows us to fix our mistakes post facto.

mnemonik··on Beyond Source Maps
This is a pretty good overview: http://www.html5rocks.com/en/tutorials/developertools/source...
mnemonik··on Ask HN: Looking for contributors?
I forget the nitty gritty details, but as I understand it: Apple's restrictions dictating what can and can't go in iOS apps makes it impossible for us to use Gecko on iOS.

Edit: Here is a more thorough answer: http://support.mozilla.org/en-US/questions/945460#answer-392...

mnemonik··on Ask HN: Looking for contributors?
Devtools is also always looking for contributors! We have good first bugs and mentored bugs. Everything is written in web technologies, so if you are already a competent web developer it is fairly easy to start contributing.

Come drop in IRC and say hi :)

https://wiki.mozilla.org/DevTools/Hacking

https://wiki.mozilla.org/DevTools/GetInvolved

mnemonik··on Firefox OS 1.3
This is the most important point; it is totally consistent.
mnemonik··on Designing Tools
Filed https://bugzilla.mozilla.org/show_bug.cgi?id=978206 for you.
← PreviousPage 2 of 9Next →