HNHacker News
TopNewBestAskShowJobs

thejameskyle

705 karma · joined September 9, 2014

[ my public key: https://keybase.io/thejameskyle; my proof: https://keybase.io/thejameskyle/sigs/JG03fhbXbQkjSM_XLK_iG-ItSCMJwVpiSd05zUzIrLc ]
submissionscomments
thejameskyle··on Rome will be written in Rust
Something I didn't mention in the post that might deserve calling out specifically is that Rust maintainers actively decide to work in crates instead of in std for many things.

This means that you have the language designers themselves maintaining some of the most important crates in the ecosystem, and baking it into their process to iterate on the language itself. The result is really high quality crates and the community is better for it.

I'm not trying to dunk on JavaScript/npm packages though, or anyone involved in developing the language. Clearly the JS community has found success and is meeting a lot of people's needs. We can accept that Rome's requirements are different than most people using JavaScript.

thejameskyle··on WikiLeaks is “thinking of” putting me in danger
No they did not suggest doxxing, and yes the information they want to aggregate is public, but that is not the point. The point is that they want to build a tool which will primarily be used for doxxing by random internet users.

Also, discrediting WikiLeaks doesn't serve me personally – I've never said anything against them publicly until today, and I used to be an avid supporter.

However, if you read their support Twitter account they are doing a good enough job of discrediting themselves. Go read through their twitter account, it reads like Donald Trump's:

- https://twitter.com/WLTaskForce/status/817446026944643076 - https://twitter.com/WLTaskForce/status/817435562109968384 - https://twitter.com/WLTaskForce/status/817470461529427968

thejameskyle··on WikiLeaks is “thinking of” putting me in danger
The difference here is accessibility.

There's a number of public ways (which could be automated) to find out information like people's home addresses, but generally it's pretty difficult to figure out how (provided someone isn't just publicly posting their address).

Online harassers are often deterred simply because it takes too much effort to find out the information to do more harm.

Doxxing takes some amount of know how, and that's the only thing preventing it from happening more often.

thejameskyle··on Announcing TypeScript 2.1
> Creating a static attribute on a class and initializing it right there, as in: class A { static b:B = new B(); }

That is how the ECMAScript spec is designed. And TypeScript _should_ follow the spec.

thejameskyle··on Announcing TypeScript 2.1
Flow tries to integrate with the existing ecosystem as much as possible. By taking advantage of Babel, ESLint, Atom, etc.

With Flow you don't even have to opt-in to a new syntax. You can just use comments:

    function foo(val /* : boolean */) /* : string */ {}
Using really powerful inference you can also write much fewer types. If you have well types libraries [you sometimes don't need types in your code at all](https://medium.com/@thejameskyle/flow-mapping-an-object-373d...).
thejameskyle··on Announcing TypeScript 2.1
Those all exist in Flow as well.

I assume the original poster is talking about how few types you actually need to write in Flow because of how good the inference is.

thejameskyle··on Announcing TypeScript 2.1
If that's too much you can also do:

    function bar(x) /* : string */ {
No compiling necessary
thejameskyle··on Announcing TypeScript 2.1
Comments is definitely the easiest way to get doing. But also if you're already using Babel and ESLint, you can add Flow in very few steps:

1. Setting up with Babel: (note that if you are already using the "react" preset you don't have to do anything)

    $ npm install --save-dev babel-plugin-transform-flow-strip-types
Then update your `.babelrc`:

    { plugins: ["transform-flow-strip-types"] }
2. Setting up with ESLint

    $ npm install --save-dev eslint-plugin-flowtype-errors
Then update your `.eslintrc`:

    { plugins: ["flowtype-errors"] }

Then just install `flow-bin` and create an empty `.flowconfig` file in the root of your repo and you're done. Now you have Babel compiling your code the same as always and you can use the Flow type syntax, and with ESLint you probably already have your editor all setup to show you warnings.

We're trying to integrate more with tools like this so you don't have to go changing your entire workflow. It shouldn't be so hard to add types to your existing JavaScript code.

thejameskyle··on Dear JavaScript
I got to work on Lerna for about two months while working at Cloudflare in order to ship cf-ui. Otherwise it was in the middle of a period where I mostly backed out of doing open source because of frustration with the community from early this year. So if Cloudflare hadn't done that I probably never would have gotten involved.

I'm sorry I was often short-breathed when responding. I'm sorry I shut people down more than a few times. From my perspective Lerna was feature complete until Yarn was launched, and people were only ever making feature requests so I didn't see a big deal.

At one point I was frustrated and Bo made it seem like he was going to abuse his power as a contributor and I got freaked out and removed him. He only got more and more vocal from there and I just pushed him out entirely.

Since then I've started a new job, a new relationship, I've been exhausting myself writing new talks. I've had family problems, work problems, fucking country problems... a family member who has been having suicidal thoughts, family who have practically disowned me for being gay and refusing to take their shit.

To be honest, I've barely been getting by in life before we even start talking about open source. I have to take care of that first.

I'm sorry.

thejameskyle··on Dear JavaScript
Anything more than the two presets "es2015" and "react" (we never should have shipped "react" on by default, we just didn't have a pluggable parser before) required configuration in Babel 5. A regular complaint that we had was that the Babel <5 configuration was really annoying because it involved three separate whitelists/blacklists
thejameskyle··on Dear JavaScript
People keep assuming I have something against sharing criticism or frustration. I never said that. I explicitly said that's not what I'm trying to say.

I'm saying that when someone does it in a way that is in pure unadulterated anger that the community should not reward them for it. It's unhealthy for everyone.

thejameskyle··on Dear JavaScript
The change in Babel 6 was this:

   $ npm install babel-cli
   $ babel src -d lib
To this:

   $ npm install babel-cli babel-preset-es2015
   $ echo '{ presets: ["es2015"] }' >> .babelrc
   $ babel src -d lib
It really wasn't that big of a change.

Also, we did give it a new name. It used to be 6to5, and we changed the name around the intention to make it more generic. Which Babel 6 was the culmination of.

As for communicating with the community. Yeah, we can't address everyone at once or even reach them all. We could shove it in their face (and we do) and still a significant portion would still ignore us (and they do). There's not much we can do about that. But they shouldn't come to us and say that we never said anything about this, because yes we did.

Also, the article I referenced about Angular 2 was not talking about the transition from Angular 1 to 2. It was talking about ng2 as its own thing, criticizing it's design more than anything (just in a really shitty way).

thejameskyle··on Dear JavaScript
I can't read the article so it's hard to say. But if it was just about the security vulnerability and you weren't calling their software shit, then that's not what I'm trying to cut away at and I'm not sure why the author took it so personally.
thejameskyle··on Dear JavaScript
I wasn't saying that people don't have a right to be frustrated or angry. I wasn't saying we shouldn't voice our criticisms as developers or that we shouldn't disagree with one another.

The only argument I'm really trying to make in this article is that when someone has stepped over a line into outraged attacks on tools and authors that the community shouldn't reward them for that.

Apparently this is too much to ask because so far today I've been called:

- a special snowflake

- autistic

- whiney

- thin-skinned

- pathetic

- weak

And I only published this like 2 hours ago and I have hundreds of notifications to go through still. The next few days I'm probably going to get a hell of a lot worse. Still waiting for my first "faggot" which always inevitably happens.

I have some pretty thick skin. I was raised in an abusive environment and I made my own way in the world at 16.

I'm not bothered by one person saying I'm an idiot.

What gets to you is a few thousands people agreeing.

thejameskyle··on Dear JavaScript
> What did you build with angular 2? Is it public?

Heh, I build the same thing every time because I am not creative. Here's the Marionette version: http://marionettewires.com/

I could put it out there. The problem is that people assume when I share something that I am trying to tell them how things should be, like I'm some software design #thoughtleader genius. When really I'm just blindly trying to figure out what the hell I'm doing.

thejameskyle··on Dear JavaScript
You assume I was being paid to work on Babel. I was not.

I worked on the UI team for Cloudflare, where we didn't even use Babel until earlier this year shortly before I left. I worked on open source on the weekend.

The vast majority of open source maintainers are not paid in anyway whatsoever. Conferences pay me to fly places and stay in hotels because they make a profit off of me.

Even now as I am paid to do open source. I don't think a single person on my team would expect me to tolerate people yelling at me. I'm not a politician, I can and do ignore plenty of people. Most of the time negative people arent saying anything useful anyways.

thejameskyle··on Yarn: Lockfiles should be committed on all projects
yo @cpojer come fite me
thejameskyle··on Yarn – A new package manager for JavaScript
npm should not be terrified, we've been working with them and they've been very encouraging.

From their perspective it's very difficult to make breaking changes to the client because of the sheer number of people depending on them. (We've faced similar problems on Babel)

Yarn still makes use of the npm registry and all the high quality infrastructure they've built and support they provide for the ecosystem. They are a critical piece of this.

thejameskyle··on Yarn – A new package manager for JavaScript
Yarn supports `yarn [install/add] --flat` for resolving dependencies to a single version
thejameskyle··on Yarn – A new package manager for JavaScript
Similar, but even more similar to Rust's Cargo https://crates.io/
thejameskyle··on Yarn – A new package manager for JavaScript
You can run `yarn clean` and it will clear out all the extra files you don't need: https://yarnpkg.com/en/docs/cli/clean
thejameskyle··on Yarn – A new package manager for JavaScript
Sorry about that, there are very likely still some bugs out there we weren't able to catch in all our testing which will be ironed out by the community in the next few days. Can you open an issue with details about which package failed to install? https://github.com/yarnpkg/yarn/issues/new
thejameskyle··on Yarn – A new package manager for JavaScript
npm's been involved since the early days, they wrote up a blog post here: http://blog.npmjs.org/post/151660845210/hello-yarn
thejameskyle··on Yarn – A new package manager for JavaScript
And Yarn it deterministic! :party_parrot:
thejameskyle··on Yarn – A new package manager for JavaScript
registry.yarnpkg.com is a proxy, it doesn't contain any package data except for what gets cached by Cloudflare. Just a Cloudflare'd "CNAME registry.yarnpkg.com. registry.npmjs.org."
thejameskyle··on Yarn – A new package manager for JavaScript
Lots of ways you can install Yarn over here: https://yarnpkg.com/en/docs/install
thejameskyle··on Yarn – A new package manager for JavaScript
Oh hi Steve! https://registry.yarnpkg.com is just a proxy to the normal npm registry provided by Cloudflare so we can add additional caching and work on network performance (lots of stuff we could layer on top). It should hopefully help those in China as well which would be awesome. But everything you do still lives on the normal npm registry.
thejameskyle··on Itsy Bitsy Data Structures – Simplified examples of many common data structures
It perfectly matches up with a 30 minute talk that I gave yesterday. It's meant to be read sequentially not as a reference. It's helped a lot of people already, and this format has worked in the past: the super tiny compiler has been turned into interactive tutorials and even recommended by professors. People love the format and I think it connects with people better.

But then again I don't know why you thought your opinion mattered if you didn't even read it. I guess that is the quality feedback I do expect from Hacker News commentors though.

thejameskyle··on Itsy Bitsy Data Structures – Simplified examples of many common data structures
Hi I wrote this thing. I guess I'll comment on this thread since it got some attention.

I think a lot of people that are in this thread went into this project with the complete wrong state of mind.

I'm not trying to teach people how a hash table or linked list implementation works. I'm not trying to make a library that is useful to anyone.

What I'm trying to do is connect the dots between a bunch of different important concepts in data structures.

People can go read things about each of these individual topics to great length and I encourage them too, but in general there are a lot of great computer science resources for just piecing a lot of related topics together for beginners.

Sure you can read a 600 page book that will cover things from end to end, but those are very intimidating when you have no prior knowledge of the topic and sometimes you don't get as much out of them if you don't know the basics.

If I can provide people with just a quick highlight reel of essential knowledge of data structures then I've done what I set out to do.

I hope Hacker News can appreciate that, I don't expect it to, but I can hope.

thejameskyle··on Flowtype 0.30 adds support for Windows
> The Flow team doesn't seem nearly as interested in usability/adoption as the TypeScript team

It makes me sad that you think this. The team cares very deeply about usability and adoption. We've committed to making it our sole focus for the current half. I was brought onto the team to focus on the external experience and adoption because of my experience working on Babel.

We're solving a very difficult problem space, and we're doing our best to do it right. Trust me that we're thinking about all the same things you are and finding ways to address them.

Also, I must say that I agree that the TypeScript has a massive lead in the community and ecosystem. It's just our opinion that we've set ourselves up to do even better, we're just now switching modes from making the type checker awesome to making the user experience awesome.

If you have any concerns about the experience we're happy to hear it. Having a rapid constant feedback loop is important.

Page 1 of 4Next →