HNHacker News
TopNewBestAskShowJobs

loganfsmyth

67 karma · joined May 12, 2010

Developer on at Replay.io working on the next generation debugging tools for JavaScript development on the web and Node.
submissionscomments
loganfsmyth··on Show HN: Time travel debugger for web development
(Replay engineer here): We don't currently support inspecting network requests, but that is something we plan to support in the future.
loganfsmyth··on Show HN: Time travel debugger for web development
> What's the timeline on Windows support?

Work on Windows support in ongoing now and we're hoping to have at least an initial beta Windows release some time in the next month or two ideally, though it certainly depends on if anything unexpected comes up.

loganfsmyth··on Show HN: Time travel debugger for web development
(Replay engineer here):

> What are the limits for the recordings in terms of time and input data size?

The best answer right now is that it varies a lot depending on overall CPU usage, the amount of memory used, and the length, so it's somewhat difficult to nail down. Right now we recommend less than 2 minutes long as an attempt to keep things reasonable, but if it's 2 minutes at full CPU usage it may still not load.

> on Ubuntu 18.04 I get the following error:

For the Glibc error, I'll ask around but not sure off the top of my head.

loganfsmyth··on Show HN: Time travel debugger for web development
(Replay employee here): We have experimental support for some react-specific features using react-devtools since React is such a common framework, but the Replay is a general debugging tool and will work with other frameworks well too.
loganfsmyth··on Show HN: Time travel debugger for web development
Once a recording is made, you can jump around in it as much as you like. The network requests will only be made during the initial recording process as they would normally, and when debugging it will all be pulling the request/response data from the recording itself rather than querying the network.
loganfsmyth··on Show HN: Time travel debugger for web development
Very excited to see what folks here think. Replay has been a wonderful project to work on so far.
loganfsmyth··on PlainJS – Vanilla JavaScript Repository
Babel on its own only addresses syntactic functionality and wouldn't cover this, but it is indeed extremely easily to polyfill `classList`.
loganfsmyth··on PlainJS – Vanilla JavaScript Repository
You don't even need the `Array.from` anymore. `.forEach` on `NodeList` is standard https://developer.mozilla.org/en-US/docs/Web/API/NodeList/fo..., so all you need to do is load a polyfill for that.
loganfsmyth··on PlainJS – Vanilla JavaScript Repository
It's even easier now. `.forEach` on `NodeList` is standard https://developer.mozilla.org/en-US/docs/Web/API/NodeList/fo..., so all you need to do is load a polyfill for that.
loganfsmyth··on Babili: An ES6+ aware minifier based on Babel
That doesn't appear to replace variable names with shorter versions, or remove dead code, which Uglify and other minifiers do.
loganfsmyth··on Babel 6 – useless by default
I totally agree that the initial user experience for Babel could use some work. We don't tend to do a great job of guiding users through initial setup. It absolutely needs work. I'd be curious to hear the author's thoughts on what we can do better in that respect, since "no config" probably isn't going to happen off the bat.

On the other hand, I don't feel that it's reasonable to assume that setting up a build system will be trivial. Jumping into ES6 isn't and shouldn't be a trivial decision, transpilation is a complex process with edge cases. That doesn't mean it should be a pain in the ass, and I don't want it to be, but it doesn't mean it will be instantaneous and easy. Users have totally different build targets (different Node versions, different browsers, some need IE8 support, some don't). Different systems need different levels of polyfilling and differing output syntax.

Enabling everything by default is one option here, but that encourages people to not consider how things actually work, which is rarely a good idea. It also assumes that adding complexity around knowing what to _disable_ is actually better, which I'm not convinced it is.

loganfsmyth··on Adblockers as the reason for InvalidAccessError
I've also hit this in the past. However I feel like I remember seeing that the error messaging had been enhaced in whichever version of Chrome came out next. I've forgotten the details now, but I feel like it explicitly said that an extension had blocked the request.
loganfsmyth··on Node v4.0.0
ES6 imports are declarative, so dependencies are resolved and executed before the body of the module is executed. That means you don't conceptually have to think about whether your dependencies are loading synchronously or asynchronously.
loganfsmyth··on Node v4.0.0
Just a nit, but that isn't destructuring. Named import syntax has several differences, since name aliasing uses a different format and you cannot nest or provide default values.
loganfsmyth··on ES6: The features I'm most excited about
Both are useful, but I'd hesitate to call it better. What makes you say it is better?
loganfsmyth··on Project Fi Review: Cell Service from Google
I switched to Fi about a month ago and it has served me very well in the Bay area so far, and it made a trip to the east coast with good wifi and bad cell service much easier because I could just use wifi.

Also liking the Nexus 6. After playing with a coworkers a little I decided I was fine with the size and after a month I'm still very happy with it. I upgraded from a Galaxy Nexus.

Please who doesn't love being able to ditch Verizon.

loganfsmyth··on Metaprogramming in ES6: Symbols and why they're awesome
JSON is a very specific subset of JavaScript, and there is no literal syntax for Symbols, so there is no defined way to represent a symbol at the moment. Unless you wanted to encode them as a function call or something, which sounds terrible.
loganfsmyth··on Trine – A utility library for functional programming in JavaScript
To me at least, that's more up to NPM to manage though. As it is, it means you're essentially sidestepping npm. There's also no guarantee that people will install a version of babel-runtime that is compatible with the version of Babel that you used to publish the code.

It also means trine can never upgrade the version of Babel it is using internally, since Babel could change the helper name that it uses or something, but that might not exist in the version of babel-runtime being used in the code that depends on trine.

loganfsmyth··on Trine – A utility library for functional programming in JavaScript
Looks cool.

Not sure I get why installing `babel-runtime` would be something you'd have as a separate install step though, since there is no guarantee that the user would install the right version.

loganfsmyth··on Show HN: ES7 Decorator library adds types checking, memoization, and more to JS
The main other benefit of decorators is that they work on property descriptors, and are automatically passed property names and the target object, so you have a bit more info.

Having the descriptor means for instance that you can switch a value to use a getter function, and that enables a bunch of interesting functionality that you couldn't otherwise do.

One example that I like is automatically binding methods to the current instance on first property access.

loganfsmyth··on ES6 in Depth: Destructuring
Yeah, I wish that were handled better too. Since the parser is expecting a statements, it parses it like

    {
      a
    }

    = 5
As in, a block with just an "a" in it, followed by an assignment to nothing, which throws an syntax error.

You can however do

    ({a} = 5);
to make the parser switch to expecting a destructuring pattern instead of an block statement.
loganfsmyth··on ES6 in Depth: Destructuring
Happy to hear Babel is working well for you. I'm loving it too so far. Just to noet, named imports aren't technically destructuring though, since the syntax is different and doesn't nest. e.g.

    import { fooFunc as otherFooFunc} from './Bar';
not

    import { fooFunc: otherFooFunc} from './Bar';
loganfsmyth··on Adding 'rebeccapurple' color to CSS Color Level 4 (2014)
I see an "aliceblue". No idea if there is a history behind it.

http://dev.w3.org/csswg/css-color/#named-colors

loganfsmyth··on We have a problem with promises
Overall, totally agree, just wanted to mention two things.

2) I've always found passing callbacks by name to be very difficult to read/follow, but this is a case where I think ES6 arrow functions will help readability a lot.

    getUserByName('nolan')
        .then(user => getUserAccountById(user.id))
        .then(userAccount => // I got a user account!)
4) Your example isn't quite equivalent, you should be using the 2-param version of .then(), not .then().catch(). In your current code, if your cb threw an exception, it would call it a second time with the error from the first time.
loganfsmyth··on We have a problem with promises
The main thing in my mind is that it means your code could have cases where it throws synchronously, and cases where the promise rejects with an error.

One place this is mentioned is: https://github.com/petkaantonov/bluebird/wiki/Promise-anti-p...

loganfsmyth··on NoTCP
That was my first question too. QUIC is all user-land code.
loganfsmyth··on NES graphics – Part 1
Definitely second writing your own as a way to learn. I wrote one that could mostly play pong a while back and it was super satisfying. The PPU was definitely the toughest part.
loganfsmyth··on CapitalOne has the most secure password system
Maybe it's only a hashed version of the characters? :P
loganfsmyth··on Y U NO commit??
I save pretty compulsively, so this would annoy the crap out of me...
loganfsmyth··on Slimmer and faster JavaScript strings in Firefox
Definitely. Thankfully, ES6 will introduce

    "🍣".codePointAt(0)
and iterators will iterate code points, not code units.

    for (var c of "🍣"){}
Page 1 of 2Next →