nodejs / node

Node.js JavaScript runtime ✨🐢🚀✨
https://nodejs.org
Other
106.51k stars 29.02k forks source link

Join the Node Foundation? #1664

Closed mikeal closed 9 years ago

mikeal commented 9 years ago

All the documentation for the Node Foundation is ready:

The gist of it is, the foundation's governance structure is nearly identical to io.js'. In fact, during the process of writing all this down we improved the documentation for most of these policies and made some improvements. The new "converged" node project will begin with io.js master and port changes from node.js in for its first release target.

I wrote an extensive piece on why I think we need a foundation, and why I think the structure the Linux Foundation has setup for the Node Foundation is ideal.

It's now time to make a real decision about moving io.js in to the foundation and, eventually, merging with node.js.

Once we've committed to this we would:

There's obviously going to be a lot of technical work after that continuing to release io.js until a converged release is ready, targeting the new repo for additional automation, etc, but the immediate steps would be the ones I've outlined above.

For the Working Groups, they would continue to do things as io.js (although the org is renamed) until they have access to the appropriate node.js assets and they decide as a WG to shift their focus.

PS. As a point of process, Working Groups are autonomous, so if the TSC decides to move io.js to the Node Foundation but a WG, for whatever reason, declines they would have to be moved out of the foundation org after the move. This is just a limitation of having to move the org.

Fishrock123 commented 9 years ago

@bnoordhuis some more points can be found at https://github.com/jasnell/node.js-convergence/issues/1

Particularly, SSLv2/v3

Zayelion commented 9 years ago

@nodebotanist & at @emilyrose Safety from what?

nodebotanist commented 9 years ago

@Zayelion harassment.

jcrugzz commented 9 years ago

This seems reasonable and I'm happy to see things converge and move forward. Onwards and upwards 👍

bnoordhuis commented 9 years ago

@Fishrock123 Good point, re-adding SSLv2/3 support would be highly contentious.

mikeal commented 9 years ago

Node could currently adopt a CoC, open it's governance more, and do much more to include it's users, even without a foundation, yet it has not.

Joyent seems to view handing over the project to a foundation as the best way to deal with this.

Look, it's time to get over all the history. If we decide to do this we are node.js and it is our responsibility to solve these problems. We don't need to pick back through the history, nobody from Joyent that has been working on the project more than a year is even involved anymore so even putting this on any people left involved is silly.

Let's move on and fix these problems, and fix them for both projects now that it is an option.

KarbonDallas commented 9 years ago

@mikeal :+1: to getting over the history and focusing on solution.

@rvagg mentions in point 2 of his response the primary concern I have with live streams; avatars talking to each other sounds perfectly reasonable. Thank you for clarifying!

nodebotanist commented 9 years ago

@mikeal that's all I really asked for in my comment- a plan to fix these things. I understand that those currently in place are not the ones responsible for past events, but I would like to see some plan of action before getting excited about it. I'm all for moving on, I'd just like to see what that means.

yangwao commented 9 years ago

:+1:

Fishrock123 commented 9 years ago

Avatars talking to each other sounds perfectly reasonable. Thank you for clarifying!

Yes, and given the fact that video is sometimes hard on people's internet connections, almost all of the last meetings have been audio only, although still broadcast to youtube.

(And we don't make anyone video ever)

mikeal commented 9 years ago

@nodebotanist I'm starting to put something together, it's going to take time though, and I want to do it for the whole foundation, not just core. Expect to hear more about it in our call next week :)

julianduque commented 9 years ago

If this is the best for the Future of Node and io.js I'm in :+1:

KarbonDallas commented 9 years ago

if @julianduque is in, I'm in.

reqshark commented 9 years ago

-1 for joining the foundation. because io.js is way cooler than node

KarbonDallas commented 9 years ago

@reqshark would you be willing to provide any objective reasoning behind your assessment of io.js being "way cooler than" node, or are you just trolling?

reqshark commented 9 years ago

it's not a troll. going with your gut is a good way to make decisions

quantifying things might work for small decisions, but often for the larger decisions in life, our subconsious is far superior

besides objectivity is false on it face since everything comes to your experienced-based perception as a subjective moment in the flow of time.

KarbonDallas commented 9 years ago

Thanks @reqshark!

I think I understand where you're coming from now.

formula1 commented 9 years ago

I almost always miss the live streams though I tend to catchup on youtube. Additionally, usually I have less questions as much as I want to know how you all think and the future of javascript. TBH, most of the important things get handled in issues/PRs/dev branches, so in a way I generally view the TC meetings as formalities rather than how things get done on iojs. But its great background noise and sometimes there are things I actually care about (like deprecation of utils). Without them though I definitely wouldn't be as invested as I am, I would pay attention to whats going on (because you guys are the future) but I probably wouldn't comment on issues like these.

@mikeal Alright. I gotta organize my thoughts.

I gotta say it took a lot of backbone to fork in the first place, though there were glaring reasons on why (node's v8 is deprecated amoung them...). Hopefully people don't just have a forking itch they need to scratch. The language in the TSC charter explicitely condemns making changes just for the sake of making them so I don't think the majority would just say "I want to fork again :'C".

That being said, this structure's balance is heavilly reliant on the TSC wanting minimal contact with rules/regulations and willingness to leave in the event things start getting weird. And the board willing to throw down cash to get what it wants from node. Seems pretty solid actually.

I also am led to believe there is little difference than the current policies in place so I expect this is just iojs with a different label.

mikeal commented 9 years ago

The Board is member driven - Likely due to financial support (Someone needs to pay the bills, free software is rarely free)

The foundation is a 501(c)6 which is a "member driven trade organization." There will be both corporate members (donors) non-profit members (other orgs that wish to be members but don't donate money) and individual members (developers who sign up to be members). The legal entity is required to run in service of the membership.

The foundation is administered by the board of directors. The board is made up of donors at various levels as well as at least one representative from the technical side (we structure the technical side so that we could add more top level projects and potentially give them seats or an elected number of seats after we expand but to start the TSC will designate a single rep). The way the board seats get distributed on the donor side is based on how much they've put in, the top level gets a board seat, the next level down in membership elects a few seats, and the lowest level elects fewer seats. The exact number of seats depends on the overall size of the board, the more top level members show up the more reps the lower levels get, and so forth. There are exceptions to this made for financial institutions which may want to donate at the highest level but actually cannot take a board seat for various financial service regulation reasons.

The Board can pass do anything it likes

The board has a fiduciary duty to act in the interest of the members. If they don't then members of the board can be held libel.

It's best to think of it this way: the foundation is a "person" in the eyes of the law. It is exempt from taxation because it is not a for profit entity. The foundation is administered by the board but is still, by law, required to act in the best interests of the membership (trade group) it represents.

The TSC is a seperate entity that does not have to continue working under the Node-Foundation Umbrella

It operates autonomously but does so under the foundation. But, because it is autonomous, it could always vote to leave the foundation. A good example is the Linux Foundation and Linus. Linus works for the foundation, but he could leave, and if he did the foundation would lose legitimacy and the membership would end up dissolving it, so the board of the LF is never going to do something they know Linus would leave over. The project will go where Linus goes, just like this project would go where the TSC goes.

The TSC organizes the working groups, votes on breaking PRs and everything actually relevent.

Correct. All working groups fall under the TSC but are also granted a fair amount of autonomy. There is also room for additional "top level projects" which would essentially be another org stood up in parallel to the TSC. This would be the case if the foundation brought in a project like express or hapi or gulp, etc.

Zayelion commented 9 years ago

So, the big companies are paying to keep the developers and developer leadership happy?

reqshark commented 9 years ago

501(c)6 doesn't sound international. It's sounds contrived by a government

Zayelion commented 9 years ago

@reqshark it is contrived by a government, but that is sorta the point. The foundation is a buffer for dealing with other contrivances of the government like ownership taxes income and liability against open source work.

formula1 commented 9 years ago

@mikeal Are you a programmer or a lawyer O_o (well, research and structuring is abstract so I suppose it can be applied to anything). Thank you for taking the time to explain this. I have little to no influence on the end decision so I humbled by your willingness to explain it deeply.

Foundation

  • A percentage (1/2? 1/3?) of the board will be donor based.
  • The rest of the seats will be filled by non profits and individuals who wish to participate
  • Individuals can just show up and say "I want to be a member"?
  • Can I theoretically be apart of the foundation? :O

Foundation Administration

  • donor based with at least 1 person from TSC - People who are time/money/effort invested
  • high donors level gets a definitive seat
  • Everything else (Lower levels) -> As money decreases, The amount of votes to elect board member decreases
  • As more high level donors show up, lower levels are given more votes to choose representatives
  • There are cases where it would be illegal to give a seat, so no matter the amount they are not given one.

This is starting to look more like a three branch system of sorts than the two branch that I thought it was. TSC executive branch, Board acts as the Judicial branch and the Foundation acts as legislative. Of sorts of course

What I especially like about this system is that if TSC were to fork again, the board wouldn't just try to look for a new team but also have non-profits and regular people applying pressure from the foundation to make the best choice (which is keep the TSC happy of course).

reqshark commented 9 years ago

I don't want to see Microsoft on it. Visual studio running on windows 8 doesn't even support syntax highlighting for JavaScript. Why do you think they care about Javascript?

Fishrock123 commented 9 years ago

@reqshark You either have the choice to say constructive things, or nothing at all. Thank you.

mikeal commented 9 years ago

Are you a programmer or a lawyer O_o

Programmer, but I've spent the better part of a year getting my head around all this stuff.

A percentage (1/2? 1/3?) of the board will be donor based.

High tier (companies giving 250K per year) get a board seat. The majority of the board is donors, the percentage allotments are for mid and low tier.

The full foundation bylaws should be posted soon (they were suppose to already be posted but ended up doing another round trip with the lawyers) but here are the relevant sections from the last draft I have. Gold is the mid-tier membership and Silver is the low-tier. Warning, it is very long and boring ;)

4.3(b) At the time of any election of Directors where there are at least three (3) Gold Members in good standing, each Gold Member in good standing shall have the right to vote, together with the other Gold Members as a class, to elect that number of Directors equal to the lesser of (i) the number of Gold Members then in good standing divided by three (3), rounded down to the nearest whole number, and (ii) that number of Directors equal to two times the number of Platinum Directors then being appointed or in office, less two (2) (each such Director being referred to as a “Gold Director”), subject to a maximum of three (3) Gold Directors. Prior to the first annual action of Members, the initial Gold Director(s), if any, may at the Board’s discretion be elected by the Board. Each Gold Director shall serve in accordance with Section 4.3(g) below and until his or her successor is elected and qualified or until his or her earlier resignation or removal. The selection of nominees for such position(s) shall be performed under such nominating procedures as may be set by the Board from time to time. 4.3(c) At the time of any election of Directors where there are at least ten (10) Silver Members in good standing, each Silver Member in good standing shall have the right to vote, together with the other Silver Members as a class, to elect the least of (i) three (3) Directors, (ii) that number of Directors equal to the number of Silver Members then in good standing divided by ten (10) (rounded down to the nearest whole number), and (iii) that number of Directors equal to the number of Platinum Directors then being appointed or in office, less the number of Gold Directors then being appointed or in office, less two (2) (each such Director being referred to as a “Silver Director”). Prior to the first annual action of Members, the initial Silver Director(s) shall be approved by the Board. Each Silver Director shall serve in accordance with Sections 4.3(e) and 4.3(g) below and until his or her successor is elected and qualified or until his or her earlier resignation or removal. The selection of nominees for such position(s) shall be performed under such nominating procedures as may be set by the Board from time to time.

The rest of the seats will be filled by non profits and individuals who wish to participate

No, there are "members" of the foundation and then there are "board members" who administer the foundation. The members are what the foundation is required to represent, the people who handle the day-to-day work of administering the foundation are the board members and the executives they budget for and elect.

Individuals can just show up and say "I want to be a member"? Can I theoretically be apart of the foundation? :O

All foundations handle this in different ways and we haven't spent time figuring it out quite yet. Potentially you can have people sign up for 20 bucks and you get a t-shirt, or you could offer it to anyone who is in the GitHub org for a dollar. There might be a legal requirement that a member has to be "dues paying" but that could be a dollar for contributors. Figuring this part out hasn't been our highest priority, getting all the technical governance in place so that we might be able to merge has been, but I'll let you know once we get to it.

donor based with at least 1 person from TSC - People who are time/money/effort invested

The primary function of the board is to handle the budget. That being the case, it does make sense that representation vary with level of financial commitment. The board will delegate pretty much everything else it can. Legal tends to still go directly to the board because if things go wrong the board members can be held libel.

Boards tend to be boring and procedural. The real work is handled in groups it spins up and delegates to, the TSC being the primary one.

So the foundation will likely be more of a marketing/education aspect since if they were developers, there would be little to no reason you would want to interact with anybody else but devs.

Yes, but once the board decides to do something like this expect it to spin a group out in the foundation to handle it rather than overloading the entire board with it. A marketing group is already in the foundation plan. I doubt there would be an "education group" but rather a group spun up to tackle something more specific like "certifications" or something like that.

The board is there to keep everyone happy The TSC actually makes things happen

Yup, pretty much. Also, if the TSC ever needs budget for something it will send it to the board and the board will figure out how to pay for it. I've already heard a lot of core people express a desire for some kind of "collaborator summit" and if you look at other foundations that is something they all do regularly.

Zayelion commented 9 years ago

@reqshark I agree with you. I am fearful of Microsoft doing something to harm or hinder the project or try to impress upon the community its will via like it did with it's browser.

Cause of fear.

Cause for rejoice

To me 'one part' of MS wants to help us, but I'm pretty sure there is some parts somewhere that want to undermine or wanted to undermine the project due to the Google systems at the projects core. Saying we require maintenance of an LTS that uses legacy code is an possible way to negatively influence the Foundation.

I believe @mikeal 's plan compensates for this. The "I am baiting you" feeling from MS has been strong for a long time. I think MS wants to create something like nodejs for itself which is not realistic corporately but is the correct technology path. That results in the odd behavior we are seeing from MS.

jalcine commented 9 years ago

Seeing nothing but dopeness here. I'm not really that afraid of Microsoft "trapping" this since everyone's aware of their (older) practices and it'd be nice to give the new direction of the company the benefit of the doubt to help improve the ecosystem. After all, they are dropping IE :)

mikeal commented 9 years ago

If you're worried about corporate influence then the standard way to mitigate that influence is to create a foundation where there are rules they play by and are required to cooperate with each other, which is what we've done :)

piscisaureus commented 9 years ago

On Microsoft's involvement - they've been involved in node.js for years. A lot of the work that went into node/libuv was done by Microsoft employees and microsoft-sponsored contractors, and I've always enjoyed working with them.

Zayelion commented 9 years ago

Yay, ok moving on!

RnbWd commented 9 years ago

There's no basis in the 'conspiracy theories' mentioned about the corporations above, and it's not relevant to this discussion.

I'm willing to put my trust into node foundation, and I don't believe there is any malicious intent involved in it's creation. I'm confident in the open-source community's ability to influence the future direction of node.js, much more so than any individual company. i just don't even want to talk about it - because it's not productive or constructive, and it undermines the situation that just happened. It's very empowering for io.js to be in this position

mathiask88 commented 9 years ago

Yeah, I like the new way Microsoft goes. Many nice news in the last month. And a promising new lightweight editor running on io.js ;) But enough about MS, I'm +1 on this and I want one of those T-Shirts!

mikeal commented 9 years ago

It's also worth mentioning that not only was Microsoft involved very early on but the addition of Windows support they paid for lead to one of the biggest increases in adoption and remains a big part of why node/io enjoy such wide adoption today.

feross commented 9 years ago

I support the decision to join the node foundation :+1:

formula1 commented 9 years ago

It is a little boring, however I'm trying my best to understand this. It seems like the board ideally will quite small. Will there be a maximum of 3 gold and 3 silver at any point in time? Or only 3 nominees at any one election. It seems the board The jargon is definitely quite a maze however it seems like something that is more complex in english than it is in math or a programming language.

Please feel free to correct me, I apologize, I'm just trying to understand things the best I can

/*
    4.3(b) At the time of any election of Directors where there are at least three (3) Gold Members in good standing, each Gold Member in good standing shall have the right to vote, together with the other Gold Members as a class, to elect that number of Directors equal to the lesser of (i) the number of Gold Members then in good standing divided by three (3), rounded down to the nearest whole number, and (ii) that number of Directors equal to two times the number of Platinum Directors then being appointed or in office, less two (2) (each such Director being referred to as a “Gold Director”), subject to a maximum of three (3) Gold Directors. Prior to the first annual action of Members, the initial Gold Director(s), if any, may at the Board’s discretion be elected by the Board. Each Gold Director shall serve in accordance with Section 4.3(g) below and until his or her successor is elected and qualified or until his or her earlier resignation or removal. The selection of nominees for such position(s) shall be performed under such nominating procedures as may be set by the Board from time to time.

*/

var directors = {};
var members = {};

on("election",function(nominees){
    if(members.gold.length < 3) return;
    members.gold.getVotes(function(err,votes){
        if(err) throw new Error("They couldn't decide as a class");
        var third_of_gold = Math.floor(members.gold.length/3);
        var doubled_platinum = 2*(directors.platinum+nominees.platinum - 2);
        if(doubled_platinum < third_of_gold){
            if(votes.length > doubled_platinum) throw new Error("Too many votes in compared to platinum");
            //Are we checking every time or only when comparing with doubled platinum
            //This doesn't seem logical so I'm a little confused by this one
            if(votes.length > 3) throw new Error("too many votes");
        }else{
            if(votes.length > third_of_gold) throw new Error("Too many votes in compared to members");
        }
        var tooLate = false;
        var t = setTimeout(function(){
            tooLate = true;
        },NextAnualDate - Date.now());
        votes.forEach(function(vote){
            boardAcceptsNominee(vote,function(boolean){
                if(tooLate) return;
                if(boolean) directors.addGold(vote);
            });
        });
    });
});

/*
    4.3(c) At the time of any election of Directors where there are at least ten (10) Silver Members in good standing, each Silver Member in good standing shall have the right to vote, together with the other Silver Members as a class, to elect the least of (i) three (3) Directors, (ii) that number of Directors equal to the number of Silver Members then in good standing divided by ten (10) (rounded down to the nearest whole number), and (iii) that number of Directors equal to the number of Platinum Directors then being appointed or in office, less the number of Gold Directors then being appointed or in office, less two (2) (each such Director being referred to as a “Silver Director”). Prior to the first annual action of Members, the initial Silver Director(s) shall be approved by the Board. Each Silver Director shall serve in accordance with Sections 4.3(e) and 4.3(g) below and until his or her successor is elected and qualified or until his or her earlier resignation or removal. The selection of nominees for such position(s) shall be performed under such nominating procedures as may be set by the Board from time to time.
*/

on("election",function(nominees){
    if(members.silver.length < 10) return;
    members.silver.getVotes(function(err,votes){
        if(votes.length > 3) throw new Error("too many votes");
        if(Math.floor(votes.length/10) > members.silver.length) throw new Error("More votes than silver members");
        var d = (directors.platinum.length + nominees.platinum.length);
        d -= (directors.gold.length + nominees.gold.length);
        d -= 2;
        if(votes.length > d) throw new Error("Not sure the reason, but too many");
        nominees.silver = votes;
        var tooLate = false;
        var t = setTimeout(function(){
            tooLate = true;
        },NextAnualDate - Date.now());
        votes.forEach(function(vote){
            boardAcceptsNominee(vote,function(boolean){
                if(tooLate) return;
                if(boolean) directors.addSilver(vote);
            });
        });
    });
}); 

on("election",function(nominees){
    /*
        Will there be a specific order or randomly chosen?
    */

    while(nominees.getTotal() < nominees.needed && world.nonProfitsShowingInterest.length){
        nominees.others.push(world.nonProfitsShowingInterest.shift());
    }
    while(nominees.getTotal() < nominees.needed && world.fansShowingInterest.length){
        nominees.others.push(world.fansShowingInterest.shift());
    }
    // In the event that not enough people are showing interest (which is unlikely as it seems the number on the board is very low)
    // It is imperitive to have people that are not financially tied or unnecessary?
    while(nominees.getTotal() < nominees.needed && world.randomPeople.length){
        nominees.others.push(world.randomPeople.shift());
    }
});
mikeal commented 9 years ago

Will there be a maximum of 3 gold and 3 silver at any point in time? Or only 3 nominees at any one election.

My understanding is only 3 elected reps at any given time.

formula1 commented 9 years ago

Ah, ok. I'm assuming that is for both gold and silver. And they will be considered representitives without the boards consent. However the board can additionally appoint any silver/gold members if they choose

mikeal commented 9 years ago

However the board can additionally appoint any silver/gold members if they choose

Gold and Silver members are donors. The amount they donate for each level is on a sliding scale dependent on how large their company is (measured by number of employees). Platinum members pay a fixed 250K.

formula1 commented 9 years ago

Ah, this would likely be far easier for me to understand in flowchart form or something else. Regardless, I trust you all know what your doing. I don't want to hijack this thread for my own curiosity

deepsweet commented 9 years ago

The new "converged" node project will begin with io.js master and port changes from node.js in for its first release target.

what about versioning? will it be semver started from 1.0.0?

pensierinmusica commented 9 years ago

As an external Node and io active user, I'll try to give a small contribution to this thread.

There seems to be good will from all sides. This is key, and timing sounds right to understand what is the best way to move forward. If most of the community thinks it would be good to join forces and have one platform, let's focus on where the pain points might be and discuss them through. So we can come up with ideas on how to address them properly and find out the best outcome.

In my understanding the core issues here are product and governance. Fot both areas everyone should voice the most relevant specific concerns they have, so they can be critiqued together.

What about opening two repos for this (one for "product", and one for "governance") and treating every specific concern like a GitHub issue. Afterall we're all programmers here. Then, for every specific issue, once we a viable solution that most of the community agrees upon, and the core Node + iojs dev team like, we can close it and move on.

The point I'm trying to make is: everyone in principle agrees that having one "good" platform would be a desirable outcome. So, let's discuss specific obstacles through, and trace the best possible path to get there.

Mistakes can be done along the way, but they're human, and we'll fix them like every bug.

Thoughts?

meandmycode commented 9 years ago

Just regarding the bizarre Microsoft distaste comments, Microsoft have been really involved in making node great on Windows for some time, and they care hugely about JavaScript development in general, in case it flew over your head last week, they released a new editor that is built on node and chromium (electron).

Microsoft of the last couple of years has embraced letting their developers develop, 'Not invented here' is clearly not part of their product strategy anymore. Remember, it's worth being informed before spreading distrust, if you care about development, being bias isn't beneficial.

julienetie commented 9 years ago

(Nobody relevant)

I like @pensierinmusica 's idea. I will say Joyent's board appears unprofessional & openly disrespectful. Their recent decision despite being good for the io.js community was not for the io.js community.

Microsofts recent view of the open source world is fantastic but you would be naive to think Microsoft is no longer one of the most "brutal" business players out there.

Opportunities missed can sometimes never be regained even if that opportunity involves walking past one.

Keep up the good work everyone, look forward to seeing the progression.

19h commented 9 years ago

I don't see the point in "moving" anything. Why can't we construct the foundation around "iojs"?

There's running infrastructure, an integrated process and release protocol which evolved quite a bit since inception of io.js. Additionally, the overhead of moving and renaming is useless and sunk cost. If at all, node should merge into io.js and converge into a common io.js project. And the project should be independent from Joyent et al. — I don't see the point of a project directed by companies that though they contribute shitloads of money only use that position to promote themselves as "leading partner in the future of node". Same thing with Walmart and the other companies that convoluted node into a lackluster stagnation.

Node shall be free of enterprise corporatism and that super-ego of commercial self-gratification.

$0.02

ghost commented 9 years ago

About live meetings. I've watched only 2 times a live meeting and was kicked at my last one due to limitations by Google Hangout. Then never tried watching it again. IRC is not on my tools belt (but Gitter.im and Slack are).

About Foundation. :+1: After reading all the docs, I kinda feel right to be here still. Technically I am just wondering about npm and it's version handling in the meaning of 'how can all the published packages survive this merge process?'.

mikeal commented 9 years ago

@pensierinmusica we already did work out what is best for governance, that's how we got to io.js' governance model, which is now also the foundation's governance model. As far as "product" concerns, which I would characterize as technical differences between the project, that's being handled through the merge process using this plan in this repo which you can comment on and propose reversions in once the initial merge phase is finished.

mikeal commented 9 years ago

what about versioning? will it be semver started from 1.0.0?

No, we won't be stepping on io.js version numbers and old major release branches of io.js will become node.js release branches and continue to be released under the LTS plan. So the first merged release would be 3.0 provided that the merge happens faster than io.js hits 3.0 independently. If not, 4.0, or whatever, you get the point :)

mscdex commented 9 years ago

@fibric FWIW there is a link at the bottom of the iojs.org site that brings up a new web IRC client already connected to the #io.js channel.

ghost commented 9 years ago

@mscdex thanks, I know. But it does not solve problems I have with IRC. IRC is like Windows, it does work in same cases but it does not work on my desk. If IRC is the only tool of choice, well then I am part of the border community, waiting for better tools.