The wording we used here was not perfect. We’re sorry for creating any impression that this was anything more than a polite request to use the Kik package name on NPM for an open source project we have been working on that fits the name. Thanks.
hmm
our trademark lawyers are going to be banging on your door and taking down your accounts and stuff like that
I think this is what my grandmother, rest her soul, would call “unmitigated gall”.
if you actually release an open source project called kik
This line says it was an actual empty legal threat, meaning it was extortion. Bob had known that the kik name was taken, therefore Bob had known that kik was already released on npm.
Azer should sue, and take Kik’s $0.50 emoji revenue stream.
The wording’s not great, but they’re correct in saying that trademarks can’t be selectively enforced. The reality is that if no agreement could be reached sans-lawyers, that their lawyers would have to get involved to preserve the trademark.
So no, this was not a polite request, but it never could have been a polite request. It could at most have been a veneer of politeness with the implication of legal action, because Kik really doesn’t want to weaken their trademark by engaging in selective enforcement.
Frankly, even without lawyers involved, I think Kik-the-company should get priority just based on the relative sizes of the respective userbases. It’s like how in Debian the git package for several years pointed to the GNU Interactive Tools, until git’s popularity got precedence in the global Debian package namespace. Kik-the-company has 200 million users, whereas most of us didn’t know about kik-the-CLI until now.
And this is exactly what trademarks are for: making sure consumers don’t get confused. It was so frustrating to see Azer respond to how “patent lawyers” were out to get him. I wish people at least attempted to understand laws instead of feeling powerless and indignant in the face of any sort of legal trouble.
Absolutely. There’s also the fact that Kik-the-company has been around for years, whereas kik-the-CLI was a fairly new package.
I think it is valid. I would have it download to a local folder so that the next time it doesn’t need to talk to the internet unless you delete the cache file/folder. Otherwise you need to tell your users, “get these 4 packages first, then we can talk”. I know this system can be abused and malicious scripts/packages can be run/installed, but when it is working it is great for end users and should require less support from the developer.
Alright everyone back to using Ant, Make, and hand compilation because this guy thinks dependency management is for for idiots.
My guess is that @hank is suggesting you should run an internal artefact server which archives your dependencies, or if that’s too much, vendor whatever your dependency management tool pulls in.
The point is reproducible builds, not throwing away dependency resolution.
It’s just another twist on http://www.whoownsmyavailability.com/
The npm guidelines used to explicitly state this, and tell you not to use npm in your build process unless you setup your own registry. IIRC they changed it (and now the registry page is bare-ish) when they started pushing their enterprise offerings such as On-Site and repositories as a service (“Private Repositories”).
It’s 2016 and Node’s developers haven’t figured out yet that global names are never a good idea. Using UUIDs or as the article suggest namespaces would be a straightforward solution, but it’s amazing that they didn’t do that from the start.
What exactly would namespacing have solved in this instance?
Let’s review what happened (within the package repo):
If this scenario happened with namespaced package, what would stop npm from breaking their own rules again, and transfer ownership of the (now namespaced) package?
Namespacing would prevent someone from republishing a malicious new version to anyone who uses caret dependencies.
Hell, namespacing could have prevented this entire fiasco since kik would really only need ownership over the “kik” namespace, not every package named kik.
Namespacing would prevent someone from republishing a malicious new version to anyone who uses caret dependencies.
Again, if I unpublish a package from my namespace, and npm decides to break the rules to avoid massive breakage – what has changed?
Also keep in mind that I’m not arguing against namespacing in general, but I don’t think it would’ve helped with anything in this case.
Hell, namespacing could have prevented this entire fiasco since kik would really only need ownership over the “kik” namespace, not every package named kik.
IANAL but that seems speculative to me.
EDIT: See this DMCA for GitHub, which does have namespaces: https://github.com/github/dmca/blob/master/2014-02-12-WhatsApp.md
No one can stop npm from doing whatever, but namespacing done by npm username would prevent a malicious third-party from uploading a new version of the package. I’m saying that is an improvement, not that it would have changed anything.
And yes, kik could still send a DMCA, but they would have much less reason for doing so. In this case, they probably wanted to publish a module for accessing their API and found that the logical name was already in use.
namespacing done by npm username would prevent a malicious third-party from uploading a new version of the package
Something that hasn’t happened, and as far as I can see doesn’t happen. ~/^ dependencies are always a tradeoff and it’s not clear to me that upgrading to newer versions after a package was handed over to a third party isn’t the intended behaviour in that case.
It’s 2016 and people are still using NPM as a build tool even after being explicitly told not to deserve their builds breaking because of political shit like this.
It is disingenuous to portray a reasonable interpretation as a ‘minority position’.
if ZFS were statically linked with Linux and shipped as a single work, few would argue it was not a “work based on the Program
Equating linking to being a derivative work, a long standing position of RMS and FSF, is something that was counter-intuitive to even Stallman himself (See the last mail). It may be the case that a kernel module is a derivative work of the kernel, but RMS argues that even using readline as an optional dependency makes your whole program (in this case a CL implementation) a derivative work. A laughable claim. I hope this goes to trial and that the beginnings of a reasonable interpretation of derivative work for computer programs starts to be formed.
Edit: typo main -> mail
It is disingenuous to portray a reasonable interpretation as a ‘minority position’.
Well, it appears to be a minority of lawyers. They think judges would consider that user-does-the-link are subterfuges and would not look favourably upon someone trying to sidestep the GPL via user-does-the-link. It is the opinion of judges that matters.
This wasn’t RMS’s argument, but his lawyer’s argument. That’s why RMS was initially surprised by this.
It may be the case that a kernel module is a derivative work of the kernel, but RMS argues that even using readline as an optional dependency makes your whole program (in this case a CL implementation) a derivative work. A laughable claim. I hope this goes to trial and that the beginnings of a reasonable interpretation of derivative work for computer programs starts to be formed.
If this gets overturned in court GPL loses teeth overnight. I don’t think linking against a library is a derivative work inherently unless you’re using library instructions. In which case you are using GPL licensed instructions therefore making a derivative work but IANAL.
It also means that using proprietary libraries and linking to them optionally is not a derivative work, which weakens copyrights for libraries as a whole. Meaning that using libraries is fair game regardless of their licencing status or means of acquisition as long as you have some form of stubs making the proprietary library optional.
It’s actually not as bad as you think. The community rep seats were actually a way for corps to get more votes on the board, there was very little “community” involvement.
If those filters actually worked, I’d be a lot more concerned. I have yet to see any evidence that they’re much more than guesses.
There’s a story where a person took out ads to prank his roommate on facebook.
http://mysocialsherpa.com/the-ultimate-retaliation-pranking-my-roommate-with-targeted-facebook-ads/
I used to work in this field and on facebook and twitter they’re more than likely not guesses because it’s user provided information same with profile targeted ads from Google. Without any of these things companies build statistical models by tracking you over the internet, and with enough data it’s easy to reach a very very small margin of error on advertisement ranges.
Some companies don’t even track just what your characteristics are anymore. They build probability models if you’re likely to be swayed by a certain ad when serving up their inventory in real time bidding. There’s basically a whole opaque industry that works on tracking and stats, and more often than not the things they build are close to the mark. For women who were pregnant or just had a child our P values were like 1%.
There was also that Target ad targeting that figured out a girl was pregnant: http://www.forbes.com/sites/kashmirhill/2012/02/16/how-target-figured-out-a-teen-girl-was-pregnant-before-her-father-did/
These kinds of stories happen all the time. There are more hits than misses. What’s harder to do is actually figure out bots vs humans ;-).
So what? It’s an extremely offensive term on a publicly accessible part of their website. They have every right to remove it.
[Comment removed by author]
Dear Lobste.rs –
You are walking a thin line of censorship (I WILL BITCH AT YOUR RELENTLESSLY IF YOU MODERATE MY COMMENTS. Seriously how dare you) Please host my epithets they are something that is purely programming and no feels.
Even more important than “Quick, name all the new features browsers shipped in 2015! You see? You can’t.”, is that it’s very easy to name all the new browsers that were shipped in 2015. At least, if you’re talking about browsers you can use practically. The list has zero entries. (Or maybe part of one: Servo.)
This is a big problem, because as browsers become more difficult to maintain and replace, browser vendors gain more leverage in negotiations where their interests conflict with those of users, opening the door for corruption. Thus we see Pocket integration in Firefox and the opaque binary blob with permission to listen to your microphone in Chromium.
This is a big problem, because as browsers become more difficult to maintain and replace, browser vendors gain more leverage in negotiations where their interests conflict with those of users, opening the door for corruption. Thus we see Pocket integration in Firefox and the opaque binary blob with permission to listen to your microphone in Chromium.
But is it better than the alternative where it’s bundled and/or closed source software or software that you have to pay for and it’s standards compliance is nonexistent comparatively.
I’d rather have browsers that are very close to full standards compliance with arbitrary business partnerships and features than browsers that had an arbitrary ship date to which a middle manager said good enough. At least this way the middle manager is ruining end user experience which impacts his own company negatively rather than developer experience which really impacts third party companies/developers who don’t want to invest in developing around your browser’s quirks negatively.
Your average user doesn’t care/understand that IE can’t render CSS in a compliant way. They just think your site is shit.
I think people are really blowing the whole TempleOS thing out of proportion either to troll Terry (which is sad really) or because they are really really naive about programming outside their little bubble. The reddit thread exploded where people are just goading Terry or pretending like he’s the second coming when he says stuff like TempleOS will never have things like mmap because he refuses to follow Linux/Unix, and TempleOS will always make you read/write the whole file through a compression filter.
It’s a cool project and it’s interesting that people are playing with it, but I think a huge portion of the social popularity of posts like this especially on reddit where he isn’t banned has to do with exploiting a man’s condition for entertainment which is sickening.
I can tell you why I linked it & why I read most articles about the system.
This is as pure as hobbies can go. It’s not done for fame (at least not apparently), without a goal to be useful to anyone except the author. It’s a breath of fresh air and really interesting for someone not writing an operating system since the mid 90s. His OS may be old school but it also allows a new generation of people (or people that didn’t go into OS development) to look how things were done or how they could have been done.
Oh definitely. I keep up with info about it (to know that Terry even updated his site recently) and it’s a pretty huge body of work, and I’ve churned my way through most of his videos, but in general I think there are more people on the other side of the coin that treat him like a side show attraction.
I’ve spent a lot of time working on software with a lot of practical constraints including customer and user requirements, legacy API compatibility, large amounts of legacy code, and short delivery schedules. For contrast it’s interesting to read about systems with totally foreign requirements, I don’t really understand what Terry is doing with TempleOS but the purity of it makes it pretty fascinating and a nice intermission between work and work.
Agreed, although I think that some people are not aware of his mental condition. Check out this comment.
I’d be surprised if that were the case. Every time TempleOS gets mentioned anywhere there’s a huge disclaimer about Terry and his psyche. I mean the story about After Egypt and that he believes that generating a random number and corresponding it to a word in the King James Bible is in essence communicating with God is a staple in TempleOS mythos.
because they are really really naive about programming outside their little bubble
How’s so?
The ultimate programmer’s hobby project (well, from a technical point of view) it’s certainly to build an operating system from scratch. If you have posix support you have loads of applications to snatch into it. Terry ignores posix, so he has to implement the “user space” too.
It has some features that date way back to the 70/80’s, that are non-existent in current day operating systems.
And you can’t deny that this is a technically demanding task, so probably because of that that he was godded on reddit. Most of us, in perfect mental shape, would be unable to accomplish this. I know I wouldn’t.
If showing admiration for a great hobby project is naivety … I don’t know.
If showing admiration for a great hobby project is naivety … I don’t know.
It’s not admiration it’s more like buying into thought leadership from it, because these people have never done or learned systems programming properly in college.
Example on Reddit there’s a thread that Praises Terry for going against the grain and not following Unix/Linux, and what did Terry not follow? Oh nothing he just refuses to implement real buffers, or mmap and requires that all files in TempleOS are read/written in their entirety through a compression filter.
When I pointed out how infeasible it is to run a good portion of modern software (video players, audio players, databases) on a system that does this, I was met with “oh man but our RAM is so big”.
It has some features that date way back to the 70/80’s, that are non-existent in current day operating systems.
Only some of them are not. Many of the ones that people rave about are in Plan9/Plan9FromUserspace. Again people don’t really have domain knowledge and it becomes “everything old is new”.
And you can’t deny that this is a technically demanding task, so probably because of that that he was godded on reddit. Most of us, in perfect mental shape, would be unable to accomplish this. I know I wouldn’t.
Of course, but that doesn’t mean that things that Terry does differently are implicitly “good” and without problems/complications. I mean the whole thing is in ring0 and he markets it as a feature. I mean you really have people who have never written a lick of low level code commenting about how “awesome” it is. I mean 30 years ago TempleOS could have realistically been an undergrad project. It’s an impressive project and it’s unique, but it’s not well designed, and you have people comparing him to Theo De Raadt and the OpenBSD team because he “refuses to compromise” which is hilarious because he refuses to get out of ring0 and implement buffered/mapped read/writes.
I’m fine with admiration of effort but lets be realistic about his design choices.
I usually use vertical tab in shell pipelines where other common delimiters (tab, colon, comma) are likely to be in the input. It allows some robustness without excess crazyness.
So, I always get the feeling that the lower values in ASCII are Black Magic ™, not meant for mere mortals.
But, as I’ve gotten older, I’ve seen more and more things that actually worked really well and then were abandoned because people forgot what problems they solved–only to reinvent those solutions later.
So, where can we learn about the utility and history of all those goofy control codes?
To be fair GS, RS and US are only useful if you’re encoding text and only ASCII or UTF-* or something ASCII based that is either fixed width or doesn’t use something under 1F as a prefix and your data doesn’t use 1D, 1E or 1F.
However GS RS and US are still alive and kicking if you work with Mainframes because their database dumps (which are the cleanest ever) use that instead of CSV/SQL. But the best ‘history’ of control codes right now is learning about the VT100 and VT220 standards.
That actually gave me an idea on what to do if my shell scripts' input delimiters start being problematic and need to be worked around to accept input that has them.
The solution might not be to drop something that isn’t being used but to start using it more because it does have a purpose.
I implemented a protocol like this in a text editor I never finished (but that part worked). I think it’s an excellent approach, and I look forward to seeing the results!
I wish every edit GUI would be designed this way, frankly… not just text. And I’d love it if there were a generic framework to make these things network-transparent.
But please don’t let my pipe dreams turn into scope creep for your project. Get to 1.0 first. :)
Too late. Unfortunately tarruda and the rest of the “core” contributing team have basically devolved into making the grandiose features while letting the community fill in the blanks when their architecting has misgivings. For example copy paste behavior is just broken in the scope of all NeoVim features compared the vim.
In reality there is a lack of caring from the community as well because most people just don’t give a shit about windows build issues, copy/paste integration and working with vertical inserts/pastes, etc. And I feel like I don’t have time to contribute to a volatile code base. I submit bugs for copy/paste but have stopped because for some weird reason the resolution is to make other linux utilities bow down to NeoVim to fix them. It’s a shitty situation all around and simply because they wanted to cut out cruft code.
Obviously, I’m not involved and have to take your word for it, but I’m sorry to hear that. As personal advice, I’ve learned over the years that you don’t owe any open-source project your time, and that kind of attitude might mean your efforts would be more welcome elsewhere.
It’s been available for most of last year. I’ve been using it for about 14 months. It’s been an “okay” experience. There are certainly some things that are better but there are major criticisms as to how certain issues are being handled in the name of progress.
I’m excited about the direction of neovim, but I’m not familiar with the project internals. If you don’t mind me asking, what issues do you think aren’t being handled so well?
We live in a cosmopolitan society, and our world is becoming smaller as it becomes easier to connect and communicate. We will always encounter people with opinions different than ours in varying degrees. How we get along, work with, and co-exist with, these people is important. We can’t rid the world of everyone who disagrees with us. There is a line that is too far once crossed. I don’t know what this line is, but it is the point when we should all rise our arms and fists and say “no more”. But I didn’t see it in the twitter thread that initiated the github thread. I saw someone expressing their opinion about trans-people. Then I saw other people focus on a small phrase, and spew anger they felt from what they understood that to mean.
At some point we will have to work with people we disagree with. How we go about this will be the measure of our humanity. Sadly this seems like an unwarranted attack. And I say sadly because I feel for both sides. I don’t see the benefit of removing and ostracizing a community developer. But also those calling for expulsion must be in a great deal of anguish and pain.
I don’t see the benefit of removing and ostracizing a community developer.
Except this is entirely poison to the development and potential commercialization of a project. Brendan Eich should be the perfect example for that, if you’re going to seek wider acceptance you shouldn’t have political land mines of your contributors acting like this on the internet. This kind of thing kills the ability of companies to sit on your foundation board or give you monetary patronage later on, because those companies don’t want the heat of having to deal with your community’s mouths.
Politics exist in OSS. There’s simple no bullshit ways to get around this so that people don’t have to become entirely political, one of those ways is to make sure that your contributors know that they will be entirely disavowed for hate speech.
Freedom of speech isn’t freedom from consequences, nobody has to give you a platform for saying whatever the hell you want. Nobody has to respect you for your opinions, and nobody has to even give you a fair shake after you’ve aired them out. Freedom of speech is about saying what you want to say and nothing more, it’s not about treating people with hateful views the same as people without them.
if you’re going to seek wider acceptance you shouldn’t have political land mines
Freedom of speech isn’t freedom from consequences, nobody has to give you a platform for saying whatever the hell you want
I find this bullshit, frankly. This isn’t a neo-nazi, or a member of the WBC we’re talking about. Read the twitter thread - that was one remark taken out of context of a discussion about children’s surgery. The only one inappropriately seeking a platform for spouting a political agenda was the person who created that github issue.
He spouted off conspiracy theories that sex education is about the government making 4 year olds touch each other in the classroom and that somehow by learning about LGBTQ attempting to make them gay/trans without their parents permission. followed it up with a comment about how transfolk are basically crazy and deny reality. Then backpedaled when he was getting impaled by the internet and blaming it on Twitter’s 140 char limit. Likewise he was talking to two other opal contributors. Even in his own backpedal on the reality topic he says that it’s because the government is going to convince children through sex ed that includes LGBTQ curricula to bother their parents for gender reassignment surgery.
His defender on the Opal project page (meh) has several owned repositories one of which is called “fag”: “Forums Are Gay”. Just because these people don’t have an affiliation with a known movement of prejudiced douchebags that they’re card carrying members of doesn’t mean that what they’re saying isn’t hate speech.
These are not people you want to be defending.
These are not people you want to be defending.
I entirely disagree with his views, but I find it wildly inappropriate to somehow conflate his views with his work. In no other professional discipline would this line be as blurry as it is in tech. Can you imagine an aerospace engineer refusing to use an engine designed by someone with different moral/religious/political beliefs?
The point is not to debate his particular views - the point is that such a debate belongs in politics and not anywhere near a software project which translates one language into another.
For example, an engine like the Saturn V designed by Wernher von Braun?
Don't say that he's hypocritical,
Say rather that he's apolitical.
"Once the rockets are up, who cares where they come down?
That's not my department," says Wernher von Braun.
- Tom Lehrer "Wernher von Braun"
I assume you raised that example because the Lehrer song is criticizing the hypocrisy of the US, for being willing to work with an engineer who will happily build tools of mass murder for the highest bidder. It is certainly relevant in that light. The US did not refuse to use the results of his aerospace engineering, and by everyone’s testimony benefited enormously from them - and was justly criticized for it.
I guess, even though it’s tangential to the thread, I should mention that the song is somewhat unfair to von Braun. The easily-knowable parts are detailed on his Wikipedia page. What I get from it is that he genuinely had a change of sympathies during the war, but that fundamentally he viewed the military conflict as less important than goals of futurism. This is most evident in his efforts after the war - certainly the appropriate time for them - to advocate for a permanent human presence in space.
Fritz Haber (https://en.wikipedia.org/wiki/Fritz_Haber) is perhaps an even better example here.
Perhaps. From what I understand of his life as described there, he never offered his work to the allies. Certainly a story of personal change, but I don’t see the relevance to the topic of how a person’s work and their other actions affect each other.
That’s a fascinating thing for him to have received a Nobel prize for, considering the reason the prize was established, by the way!
These are not people you want to be defending.
Regrettably, a lot of times the reasonable, good, kind-hearted people aren’t the ones who need defending.
If only we could choose our battles…
The biggest surprise of the article for me was seeing Steve Klabnik continue to spread such hate on Twitter. For those that missed the last time, which apparently wasn’t learned from:
https://harthur.wordpress.com/2013/01/24/771/
Is this the type of person that the Rust community welcomes and approves of?
Should an issue be opened on GitHub?
Steve Klabnik continue to spread such hate on Twitter.
According to the follow-up post, it appears he apologised.
Yes, someone who says, “oops, I’m sorry” is definitely someone I could learn from.
Yes, I did apologize, because it was clearly a mistake, and something that I regret deeply to this day.
While I find some of Steve Klabnik’s activity distasteful, so far as I know he didn’t act that way in the Rust community. Trying to exclude him for his outside activity would be a mistake, just as recent incidents related to Opal and Strange Loop are mistakes.
When the Rust community adopted the code of conduct, it was specifically clarified that outside activity (which would include, for example, political donation by Brendan Eich) does not affect whether to exclude someone.
When the Rust community adopted the code of conduct, it was specifically clarified that outside activity (which would include, for example, political donation by Brendan Eich) does not affect whether to exclude someone.
This is because Mozilla has money/is monetized. If Mozilla didn’t have money and were actively looking for patrons they would change their tune quick. In the corporate world the rule of thumb is you can do whatever the hell you want and say whatever the hell you want until it looks bad on the company at which point they can and will reevaluate your relationship. All it will take is a huge shitstorm to fall onto Mozilla like a contributor going crazy and killing a bunch of people that he hated to make them start acting like any other company and saying fuck the code of conduct you’re fucking with our bread and butter, fuck you.
Mozilla does not control the Rust community. Specifically, there is no Mozilla employee in Rust reddit’s moderation team, and this is intentional so it will stay that way.
I don’t really care about reddit. I’m talking about contributions to the core project. When push comes to shove they’re going to react whether you like it/agree with it or not, because they have to protect themselves.
As far as I know codes written by Hans Reiser is still included in the latest Linux kernel release from kernel.org.
Sure but that doesn’t mean that Linux hasn’t distanced itself from Reiser as a result of his actions. I’m not saying excise code, I’m saying excise the person.
Code is king implies that the person who codes the most has the most power to throw around. Having such a person with views that prevents investment into your project whether monitary or textual. At one point you have to balance whether you’re going to bar futher contribution by that person based on the fact that they are stifling other contributors.
I stopped following Steve Klabnik on Twitter some time ago precisely because of comments like that. I find it inappropriate to use the same platform to espouse both moral-political and professional-technological views. That said, he is (was?) a frequent poster here, and I’d be curious to hear his side of things.
He is also a major de facto mouthpiece of Rust (and at one time, Ruby on Rails), projects without a stated political agenda. Steve is by no means the only mixing work and politics like this, but maybe it’s time that high-profile developers have a “professional” twitter and a “personal” twitter. I followed Steve because I wanted to hear about progress in Rails, not his opinions on capitalism.
The de-facto-mouthpiece of Rust is @rustlang and the blog, which are run by the corresponding teams, which Steve is a part of and runs. If you are searching for official, professional news, that’s your way to go.
Rails has official news outlets as well. Steve was never the mouthpiece of Rails, that’s clearly @dhh.
I go through spurts of posting here. There’s little discussion, but what there is is generally good, but when there’s a dry spell, I’ll forget to load it up for a few days.
Which ‘things’ you’re talking about is ambiguous here, so I’m not sure which situation you’re asking for my side of.
Is this the type of person that the Rust community welcomes and approves of?
It doesn’t matter. The “antifa” movement in Italy is just as violent as the fascists they claim they are fighting, and the only way to tell who’s who is by what “team” they cheer for, not their actions. I find this despicable and violence an unacceptable political tool, but we need to put that aside when working together. Let’s keep serious actions like boycott for serious offenses. This one does not qualify.
I have a few problems with this.
First, ruining his life because he hurt your feelings probably isn’t the best way to show him he’s wrong.
And I also suspect there’s a lot of topics where hurting people’s feelings would be perfectly fine. Let’s imagine he had posted to twitter that Christians were denying reality by believing in God. How many people would be in favor of removing him from the project for that? I’m guessing the issue would have never been opened in the first place.
If he’s not threatening anybody or speaking for the project when he does it, I don’t see the big deal, and I don’t think most people even care. Linus Torvalds has told Linux contributors, on the kernel mailing list, that they should be “retroactively aborted,” and Linux usage is growing as fast as ever. IMO Linus' comment is far more damaging than an ignorant tweet.
My point is, people have stupid ideas and post them to twitter. It’s not illegal and it doesn’t mean they need to be punished.
There are times when I feel like the sort of views espoused by @CoralineAda are in danger of being snuffed out and should be shouted as loud as possible. This time, though, it feels like the pendulum has swung too far in the other direction. This sort of thing - the public shaming of a person over a twitter @ message - makes me terrified to contribute to OSS. He didn’t use any racial/gender epithets or slurs… compared to what I read on the internet most of the time, that was a pretty tame remark (in the context of a discussion of surgery for children, which is at minimum up-for-debate and hardly “hate speech” IYAM).
But once someone gets called out like that, the hate train leaves the station, and this person’s reputation is basically ruined. I don’t sympathize with his @elia’s views whatsoever, but this seems like an excessive use of moral force to me.
I think Linus' is kind of untouchable since he’s the leader. What those people did there was “oh, this guy is a contributor on this project, but he isn’t the boss, let’s complain and have him removed!”, you can’t really do that with Linus or Theo de Raadt or antirez or whatever.
I still think meh sholuld have been a little less mean to them, the aggressive tone is ok but the “protip: you can’t and you won’t” is just rude, not matter what context.
“Hurting people’s feelings” is a stupid way to put it. Saying you’re an incompetent programmer is hurting people’s feelings, saying and entire class of people are suffering from mental illness is based on your dislike of their lifestyle is hate speech.
One is a personal attack the other is a prejudiced view that discredits people because they are different. There’s several leagues of diffence between “you’re an asshole” and “[trans people] not accepting reality is the problem here”.
I don’t think Elia’s life would be ruined if his contributions to Opal were rejected.
This is not just “hurting people’s feelings”. He’s expressing some pretty unwelcome opinions about people’s sexual identity, piling on to the abuse that they generally already feel everywhere else. He’s being a bully, not a “free-thinker”. This is not comparable to saying that believing in God is a delusion. It is possible to change one’s beliefs. Changing one’s sexual identity is almost impossible.
Linus’s actions are not commendable nor tolerable either. He should not be held up as an example of how being an asshole is alright and how nobody cares if he is. Lots of people care that he’s an asshole and don’t like it.
If people have stupid ideas, they should be called out for them. This is not punishment, and being asked to step down from a role in which they are no longer welcome is not an extreme punishment.
You have to consider the people asking for Elia to step down aren’t other contributors to the project (in fact, the contributors are defending him). Many people even went “I didn’t know about this project but I’m not touching it if this is the direction you’re taking”. This is borderline on bullying!
I don’t buy that these people use only products only if they agree with the views and attitudes of every single one of their contributors (how would you even go about that with closed products like Twitter or Github itself anyway?)
I totally agree that being transphobic is horrible and everything, but I yet have to see how this influenced the project or changed it in a way that alienates or even offends people. I rather work with a transphobic person that with someone who uses Ad Hominem in order to discredit the counterargument.
I see no reason to condone this behavior while condemning Elia’s, bullying is bad no matter who’s the victim.
“It is possible to change one’s beliefs”
I’d like to ask you to really consider what makes you think that. I’m not religious; many people I know are. Their beliefs are core to their sense of self in much the same way that their sexual identity is.
It’s still not comparable - because one group is subject to pervasive, constant harassment, and the other is not.
Well, there are plenty of ex-religious people. Most of them didn’t have to go through some sort of training camp to change their religious beliefs. I don’t think I need to come up with statistics and citations to demonstrate this, do I?
When I was a young teen I had some pretensions of trying to take religion seriously. I grew out of that, but sexual identity is not really something people usually say they just “grow out of”.
I have also changed my beliefs. I used to think that prostitution should be completely legal and unregulated and that pornography was a great thing: the more we had of both, the better. Although I exaggerate, this overall is a pretty common belief amongst our internet-dwelling nerd tribe. When I attempted to substantiate this belief with effects, statistics, and facts my opinion changed. This was relatively recently, as a full-formed adult. So it’s not just young people with incomplete neural connexions who can change their mind.
To be fair, yes, changing your mind is one of the hardest things a person can do. That is why our flamethreads go on forever. That is why someone saying, “oops, you’re right, I’m wrong” is such a unicorn. For me, changing my mind about prostitution took months of research, discussion, and listening. It was extremely difficult. But it’s not near impossible as changing one’s sexual identity is.
There are also plenty of ‘ex-straight’ people but that doesn’t mean it’s easy to change your sexual preference. A more appropriate comparison would be if you attempted to believe in a religion now; that would be very hard.
There are also plenty of ‘ex-straight’ people but that doesn’t mean it’s easy to change your sexual preference.
Okay, I was afraid someone would say that. So let’s try to find some actual stats on the matter, if they exist.
…. okay, they do not exist. But there is a vast, vast, vast amount of consensus that attempting to change a person’s seuxal identity is harmful and near impossible.
In contrast, despite the difficulty in collecting statistics on the matter, there is a very large growing body of unreligious people. Since people did not proclaim this much unreligiousness in the past (be it by conviction or by fear), we can probably say that there is a lot of changing of minds, although it could just be cross-generational instead of across individuals.
The point I was trying to make is that there is a distinction between changing your beliefs because you want to and being forced to change your beliefs.
It’s natural that as you grow as a person, you reevaluate your beliefs and may change them, I don’t dispute that it’s possible, common in fact, to change your beliefs. However, an apples-to-apples comparison would be having to change your beliefs in order to confirm.
For example, imagine a new law mandates you must believe in a particular religion. While it would be easy to go through the motions, how easy would you find it to truly change your beliefs and not feel like you’re just pretending because you have to?
It is possible to change one’s beliefs.
Isn’t that what Elia was saying? That transpeople should change their beliefs? Oh, but that’s different! Because some beliefs can be changed, but others, like identity, are immutable.
So where does the classification of what beliefs can be changed fall? Is it possible to change your mind about the set of things you can change your mind about?
Christians in English-speaking parts of the world are not a vulnerable minority. The hypothetical “denying reality” remark is not hate speech. I’m sure the issue would never have been opened, and that does make me sad. I do feel that portions of the atheist community behave in ways that are serious harassment, and insufficiently recognized as such.
People can say the right things for the wrong reasons, and that does make saying them wrong. If it’s not perceived as such, that’s a bug.
By using the hyperlink system that permeates the operating system, the shell itself can act as an explorer.
This is great, I have seen similar things in other shells, but none that would make me ditch the GUI explorer.
You can even use Type to show .BMP files directly in the shell. It raises an interesting challenge for other OSs – why do shells have to be pure text?
Sounds like it has lots of good ideas, it would be great if he could get some backing to add some shine for it, maybe break away from 640x480…
If a crash in one users’ programs could take down all the others, then obviously that would be bad. But for a personal computer, with just one user, this makes no sense.
An OS can also provide general computer stability and protecting you and your data from your applications, ie. preventing an application from exhausting all available memory, looking at your private files, phoning home, spying on what you type in, or doing something dodgy and then resetting a globally available flag to “no I didn’t do anything dodgy”.
Very interesting OS, much more unique features than the average “hobby OS”. Good job Terry!
Sounds like it has lots of good ideas, it would be great if he could get some backing to add some shine for it, maybe break away from 640x480…
They do see TermKit, Terminology, FinalTerm etc. It just doesn’t get anywhere because it’s a mostly useless feature, that’s hard to standardize and make backwards compatible.
CLI tools in Unix work best with text, you can grep ‘cat’ but we don’t have tools to grep a picture of a cat. There’s a huge limitation to composibility and expressiveness in working with rich media right now.
Most of these terms generally become half explorer half shell. Which is pretty useless because explorers themselves don’t make file navigation any “easier” in most circumstances. The easier tasks in an explorer is manually selecting a set of files that is contiguous that is smaller than the screen or selecting a non contiguous set of files smaller than 10 that fits on the screen, the rest causes explorers to degenerate to shell like behavior without the extensibility of an actual shell.
An OS can also provide general computer stability and protecting you and your data from your applications, ie. preventing an application from exhausting all available memory, looking at your private files, phoning home, spying on what you type in
Yes, it could, but normal GNU/Linux defaults don’t help with these problems much, if at all. Android is slightly better, but not that much. Linux’s security system is not designed for this, and getting it to do this is a struggle.
My favorite thing about this is that on other sites (reddit/HN) this obvious advertisement from a company that uses all of this tech to actually provide their service (simplifying this tech) has people who don’t understand or couldn’t work with these technologies coming out of the wood work to ironically rail against them.
“So, you work in the service industry?”
“No - I’m a chef. Cooking is definitely a profession, distinct from washing dishes and taking orders. I think it is even more than a profession, it is actually a new form of creative expression. That all said, ‘restauranteuring’ is a job that has many talented people working in it. But if they can’t cook, they are not part of my craft.”
Establishing delineations between “those who can (code)” and “those who can’t” strikes me as nothing but an ego massage, and is a really ugly thing when you work at a company where those lines have been formed.
I think that the reaction against this that some developers comes down to a split between engineers and service professionals. In building a building, the architects, civil engineers, and construction workers perform very different tasks. If most people’s experience with construction is the contractor that redid their kitchen, it’s perfectly valid for a civil engineer who builds skyscrapers to want to be distinguished from the person who lays tile floors.
There are certainly very skilled non-programmer technical IT professionals, but there are also many who aren’t [1] [2]. These depictions of the job “IT” cast it in a negative light that many, myself included, would rather not be associated with.
[1] http://www.reddit.com/r/4chan/comments/20x58t/anon_works_it/ [2] http://en.wikipedia.org/wiki/The_IT_Crowd
It’s an ego massage. And there should be some. Being a good chef is a lot simpler than to grok nowadays computer systems. Just try counting the levels of abstraction you are able to think at: user clicks at a link and a page loads. What really happened? Go!
Customer orders a plate, a plate comes out. What really happened? Well, the chef was responsible for striking a balance between many different demands.
Where did the meat come from - did he source it locally or was it purchased wholesale from a restaurant supplier? Depends on the focus of the restaurant, the demands of the owner, price evaluation… and boy, if we’re going farm-to-table things are going to get significantly more complicated!
What spices were used? The local folks in Austin TX are going to have a different palate than a restaurant in North Dakota; you’re not going to have much luck with hákarl and brennivín outside Helsinki. So that’s an important consideration!
Why did he pair it with kale? Is it because the taste is right? Because it’s seasonal right now? Because kale is an in-demand vegetable and therefore more likely to get ordered?
Why is it the special tonight? Because the kale was starting to wilt and needed to be priced to move? Because the butcher had extra pork this morning?
Dave called in sick; who am I going to put on meats? Sandra is a good commis but I don’t think she’s ready for that all on her own. Maybe Cassie can rotate in to cover?
Ah. Table two just ordered the scallops, better get the oil heating…
“What I do is hard, what he does is easy” is a pernicious myth that’s infected programmers. Sure, programming is hard. But lots of careers are hard. Most of the time we only think things are easy because we lack insight into what’s really happening.
Also, as you note, there’s quite a bit happening when I click “Post” on this message. But I challenge you to find any programmer in the world that can truly explain it top to bottom. Does it make a difference that plenty of us can hand wave from the top to the bottom (“well, uh, you’ve got a bunch of transistors… on some silicon”)? Nah.
At the end of the day we’re not that different from chefs - he works salads, I work databases. She’s the sous-chef de cuisine, he’s the team lead…
I apologize, I mistook chef for a cook in your original reply. I stand corrected, being a programmer is a lot similar to being a chef.
On the other hand, I doubt that a chef would not be offended by being considered just another kitchen monkey and I do not doubt that he is the most qualified person in the kitchen, able to replace any other role as required. I’ve seen programmers perform database or system administrator work and pick up help desk calls as needed. I have yet to see a help desk operator or a manager to restore a database backup.
And yes, I believe that “hardness” and necessity of programming is only surpassed by “hardness” and necessity of the theoretical research in our domain (looking at Microsoft Research, IBM, Haskell guys, Racket guys and many more). Rest of IT are just the cooks, waiters and marketing guys.
On the other hand, I doubt that a chef would not be offended by being considered just another kitchen monkey and I do not doubt that he is the most qualified person in the kitchen, able to replace any other role as required. I’ve seen programmers perform database or system administrator work and pick up help desk calls as needed. I have yet to see a help desk operator or a manager to restore a database backup.
I’m the OP of the blog post. Bingo. This is exactly right.
There is an awful lot of false equivalence going around. My post is, of course, full of ego. That’s intentional. Ego and pride go together.
Most great programmers I know have a lot of pride in their work because of the amount of training (often autodidactic training) that goes into becoming a great programmer. And because people who don’t understand automation and programming simply don’t “get it”.
The common conception of a software engineer is that it’s a person who “knows computers”. But this would be similar to saying that an astronomer just “knows telescopes” or a surgeon just “knows scalpels” or a chef just “knows cooking utensils”.
I don’t believe that programming is the One True Craft. But I do believe, it is a craft. And that in the same way that there is a huge gap between a nurse and a doctor, or a paralegal and a lawyer, there is a huge gap between an IT analyst and a programmer. That gap includes a mixture of training, life devotion, and art – and is easiest to express as “programmers can code, and IT analysts can’t.”
And it’s not “code” as in “make a script work”. Everyone can cook, but a world-class chef can create little meal masterpieces. Anyone can wield a scalpel, but a world-class surgeon can save your life with it. And yes, it’s true, anyone can program – but there are programs, and then there are programs!
It seems to me you’re making his point? There’s a hell of a lot of difference between a chef, a maitre d', a silver service waiter, and a burger flipper / table wiper at McDonald’s.
Right, but at the end of the day they’re all in the restaurant industry. Just like at the end of the day, we do “work in IT”. That’s the first point I was shooting at. Just because the author doesn’t like to be called “IT” doesn’t make it so.
The second point I was going for: sure, there’s a big difference between the fast-food fry cook and Thomas Keller. But it’s foolishness to say one is more important than the other; McDonald’s can work without Keller but can’t work without Rita on the fries.
And that’s the real importance of the “unskilled IT workers” others talk about (incorrectly, I’d say, because anything IT does require some skill…). If you have a good IT department the project managers don’t have to worry about troubleshooting their printer, which means the good project managers can focus on calling the customer and negotiating requirements with management, which means the good programmers don’t have to worry about incomplete specifications and can instead… code.
Could I troubleshoot a printer and negotiate with managers/customers? Sure! It might take me a bit longer, but I’ve done it before - we all have. Could the IT guy do my job? Likely no. But that doesn’t mean I’m necessarily more important than the IT guy. Good low-level workers act as a multiplier for levels above them.
As a fun anecdote, I remember one day long ago when the owner of the company I worked at accidentally deleted some majorly important file and was freaking out. Guess who was the most important person that day - not us programmers, but the IT guy that recovered it for him!
I have personally met many programmers that were competent programmers but sucked at IT.
Likewise I firmly believe there are programming equivalents of fry cooks in our industry, generally those “consultants” who’s main focus is to do one off Sharepoint plugins.
Where’s that XKCD comic about competing standards again?
I believe that this developer is entirely comparing apples and oranges. A config management system is a system that supports every single distro that is and potentially can ever be in your care. That means different inits, package managers, and even application versioning.
Nix is a package manager that’s ironically named because not only does it do package management but it has a tacked on level of config management. While it’s a neat idea that isn’t seen much in mainstream right now, it’s an entirely different beast than one that tries to unify distros, not in essence replace them.
I’m really confused by all this hate against small packages. Everyone is talking about microservices, which are effectively a service per function, so why is a package per function so crazy? I would like smaller packages with a more singular responsibility. Maybe 1 package per function isn’t worth it, but I would hardly call wanting that, and doing it where possible, a sign nobody can program.
Because dependencies are really hard.
Left padding a string is a problem that can be solved pretty trivially; pulling a dependency for it means you’re spending more bytes doing TLS to download the package then you are just writing the code to pad the string.
Beyond the overhead, when you rely on an outside dependency:
Those worries can be mitigated (vendoring), and sometimes the benefits of getting new features outweigh the risks of changes, but for a dependency that is effectively “finished” I don’t see the benefits.
That said, I think there’s a really interesting problem that can be solved here: can we find a way to mark certain dependencies as “finalized”? Joe Armstrong (Erlang) had some really interesting ideas around a global function store. In that case we could push
left-pad/2up to the function store and mark it as “frozen” - then a programmer can just callleft-pad/2in their code, have it pulled out of the global function store, and auto-vendored in their code.Maybe we can have our cake and eat it too…
For more in the “interesting ideas” department, Unison is an environment/language which, among other things, uniquely identifies functions by hashes of their code in hopes of supporting distribution without too much trust.
The approach I’d use to freeze things is to structurally hash their implementations (it would be much better to instead hash their type signatures, in languages where that provides sufficient guarantee of semantics, but it accomplishes the same thing), then import them by referencing that hash. Then there’s no name that can be remapped.
[Comment removed by author]
Hah, that eerily looks like dependent types.
Yes, thank you. That explains my idle desire better than I did. Your second paragraph is exactly what I had in mind.
Depends on the function, I guess. If it takes you so much time to write
isArraythat you choose to look for and depend on a package for that, well…You may be aware of this, but home-grown
isArraychecks often contain subtle bugs due to JS’s globals being different-per-realm. The naivex instanceof Arrayis wrong when checking arrays from a different realm. Often, JS developers are aware that there are complications, but don’t remember exactly what they are. So rather than reading pages of language documentation, they go with a known-reliable single-function module.I tend to prefer relying on a utility collection like LoDash, but when you’re trying to keep client-side bundles small, single function modules make sense.
Unfortunately, the sorts of complications I mentioned above are pretty common in JavaScript, so these single-function modules are actually useful across a lot of circumstances..
In this case, I would read the entire line of source code, and copy it into my code. I understand JS is bullshit and this stuff is hard, and I might end up referencing that single line of source code multiple times for other projects, but I don’t need to make it a dependency.
Exactly. JS is a weird language with plenty of quarks (and really should have a better stdlib), but adding a whole dependency for something that should be copy/pasted is ridiculous. A function doesn’t deserve it’s own file, and a function definitely doesn’t deserve a whole package with multiple files and metadata.
I’m really confused by the amount of controversy this is causing especially to people that don’t use Node. Most of the people that have been using npm correctly have just been like well that sucks to the idiots out there but my build isn’t broken. Now I have to turn around and see blog posts about “DAE think javascript programmers are dumb” while sniffing their own farts and auto fetching dependencies from search.maven.org.
Edit: Sorry that’s an unfair characterization for David Haney, he probably writes his blog post while sniffing his own farts and autofetching with NuGet. ;-)
I don’t think the point is to say every JS dev is an idiot, because that’s obviously not true (I know plenty of great JS devs who are great at it and have built some awesome projects). However, the fact that people are arguing for one line libraries is over the top. Util libraries are worth using (and JS definitely needs them), but fragmenting a util library into thousands of inter-dependent pieces is a poor idea. It’s not helping to hide complexity, it’s just shifting the problem to dependency management which is almost certainly worse.
Totally agreeable, it’s just that magically because at one point someone who is arguably a bad dev did this, everyone in the JS space is bad because all of the top tier projects were affected. This piece is like 90% veiled circlejerk against JS.
Microservices cause pain and overhead that is counterbalanced by process improvements that only apply when your organization reaches substantial scale. Micromodules cause pain and overhead (at least they would if you were taking them seriously by investigating their provenance and checking the change log when you update them) that isn’t counterbalanced by much at all.