HN user

thejameskyle

705 karma

[ my public key: https://keybase.io/thejameskyle; my proof: https://keybase.io/thejameskyle/sigs/JG03fhbXbQkjSM_XLK_iG-ItSCMJwVpiSd05zUzIrLc ]

Posts16
Comments95
View on HN

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.

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

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.

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.

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...).

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.

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.

Dear JavaScript 10 years ago

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.

Dear JavaScript 10 years ago

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

Dear JavaScript 10 years ago

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.

Dear JavaScript 10 years ago

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).

Dear JavaScript 10 years ago

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.

Dear JavaScript 10 years ago

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.

Dear JavaScript 10 years ago

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.

Dear JavaScript 10 years ago

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.

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.

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.

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.

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.

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.