30 ms·
What It's Like To Be Ridiculed For Open Sourcing A Project
- arcatek 14y agoI'm curious : what is the use case for this utility ? If I look at the README, it says : > Modifies files when matches are found Just like sed's -i option (except that -i allows you to specify a backup extension just in case) > Recursive search on directories with -r I usually use find with sed, so it's not so much a problem (and it actually allows to filter the files by extension, exclude directories, etc, which is pretty handy) > Uses JavaScript syntax for regular expressions and replacement strings I'm not sure that it's an advantage :) So, is there something that I missed ?
- crazytony 14y agoNot one she specifically mentioned (or possibly thought of) but it runs on windows without Cygwin. Edit: using the proper gender pronoun would help.
- lwf 14y ago*She
- orlly 14y agoYet it appears to require node.js? Six of one, half a dozen of the other
- doktrin 14y agoI've never configured Node on Windows, but apparently it requires Cygwin [1] Currently, you must use cygwin to install node. To do so, follow these steps: [1] http://howtonode.org/how-to-install-nodejs http://howtonode.org/how-to-install-nodejs
- maxerickson 14y agoNo: http://nodejs.org/download/ http://nodejs.org/download/
- jussij 14y agoIt is possible to run a version of SED on Windows without Cygwin: http://www.zeusedit.com/zforum/viewtopic.php?p=2683 http://www.zeusedit.com/zforum/viewtopic.php?p=2683
- PuerkitoBio 14y agoYes, you are missing something. The features of his utility is not the point.
- arcatek 14y agoWell, if someone says "So wrong that it doesn’t even need to be explained", I assume that saying some of the reasons which would lead to the bad reviews is relevant. However, I agree that it doesn't address the second point of the article which was the useless rudeness. But developers are (helas) known to be very rude people. That's not the first article talking about it.
- sharkbrainguy 14y agoI don't think a critique of the code in question is especially relevant to the main point of the article, i.e. the practice of mocking open-source projects. Debating the technical merits of this particular project can't really address that.
- maxerickson 14y agofind + sed complaints were somewhat anticipated: http://harthur.wordpress.com/2011/06/06/replace/ http://harthur.wordpress.com/2011/06/06/replace/
- byroot 14y agoYeah you missed the point of the article. It's not about the usefulness of the project, it's about why does notorious developers like steveklabnik (rails core team) and dcramer (lots of django related projects) are publicly bashing this project without any reason. It's rude and childish.
- randomaccount5 14y agoAnd a summary of that attitude: https://twitter.com/steveklabnik/status/293831920872194050 https://twitter.com/steveklabnik/status/293831920872194050 Why would anyone want to work with Steve?
- deleted 14y ago[deleted]
- IvyMike 14y agoWow--I was unaware of the fact that the commenting dudes were devs on actual important projects. This reminds me of the time James Cameron got on youtube and started posting mocking comments on videos with under 100 views. Oh, that's right, he never did that. Because it would be ridiculous, and would make him look like a petty bully.
- cpayne 14y agoThat's pretty clever! I like that one...
- xs_kid 14y agoklabnik isn't in rails core: http://rubyonrails.org/core http://rubyonrails.org/core
- manicdee 14y agoThe tool is simpler than sed because it misses a lot of stuff that sed actually does. That's what you and the people mocking this project have missed. Well, there's also the old idea of "if you don't have anything nice to say, don't say it." Or the idea of constructive criticism. Or the idea of contributing useful patches to the project. So yes, there is something you and the armchair experts missed: software doesn't exist in a vacuum, and the people behind the software might have some emotional investment in their work. As for the original project author, it bears mentioning that if you can't handle ridicule, don't appear in public. Someone, somewhere, will find a reason to mock you. It might be your choice of language, your formatting style, your_use_of_long_variable_names, UseOfCamelCase, too much/too little abstraction of methods, the colour of your hair, your choice of footwear, too much/too little hair, or that your name isn't common. Mocking people has never led to things getting better.
- swdunlop 14y agoI disagree, slightly. Mockery is sometimes the only way to make the powerful, oblivious or powerfully oblivious pay attention. I agree that it is not a reasonable tool against someone who isn't hurting anyone.
- arcatek 14y agoI see your point, but I slightly disagree. It could be worthy to kindly say that there is a 'standard' way to do it, since the author may not be aware of find or sed. And if they are, some readers may not.
- ollysb 14y ago$ find ./ -type f -exec sed -i 's/ugly/beautiful/g' {} \; vs $ replace 'ugly' 'beautiful' . -r I can definitely see the value here
- jussij 14y agoOne of the approaches has been used by tens of thousands of users over decades and the other by a handful over a few months. I know which approach I would choose.
- scarmig 14y agoI'm sure many people who have had to put up with the atrocity of sed over decades would love this tool... the author obviously knows about sed and found it lacking. Regardless, though, it's a tool she found useful, even if you personally don't. So what? The appropriate response is "Oh cool, I try to use sed. It has arcane syntax and portability issues, but it's a lowest common denominator that I can expect to find on all the systems I work on."
- petdance 14y agoThe problem is that being abusive and belittling to others is harmful to the open source community, especially when it revolves around someone who has gone and contributed to the community actual working code.
- chipsy 14y agoIt's wheel reinvention - same idea, different UI. But that's not always a terrible thing in programming; in fact it describes most of our software.
- lwf 14y agoThis seems like a nifty utility that lacks the learning curve of some classic Unix tools. Granted, it duplicates stuff in sed and grep, but it looks like it would probably be useful to many people. A project this reminded me of: http://betterthangrep.com/ http://betterthangrep.com/
- nmcfarl 14y agoFirst up a clickable link to the project: https://github.com/harthur/replace https://github.com/harthur/replace --- When I see a project that reinvents the wheel I tend to think that the author needed a very particular wheel and decided to start with first principles. And even if it seems useless to me - open sourcing it lets me see how this wheel was created, and maybe learn something from it. And of course sometimes someone reinvents `grep` as brilliantly as `ack` and I end up using it every day.
- luigi 14y agoHere's the Twitter discussion alluded to in the post: https://twitter.com/harthvader/status/293829635823792128 https://twitter.com/harthvader/status/293829635823792128 Main justification is the nicer syntax. I agree it's nicer, but would approach it by wrapping sed, not re-implementing in Node.js from scratch. I don't think that excuses the ridicule, though.
- tunesmith 14y agoMe neither. It's not as if klabnik was asked to use it. Plain old rude, in the name of defending no principle in particular.
- jjm 14y agoThe maximist point of view is to wrap sed, yes. But what also came to my mind was what if he/she just wanted to only learn, I can think of no better way than to try to write it 'yourself' in the language of your choice, if only as a learning exercise. All to often we in technology assume the maximist point of view, possibly completely discounting another dynamic point of view or some inspirational reasoning (of the originator). *edit: spelling
- parfe 14y agoHow would you get sed to output the files and lines on which replacements happened?
- noste 14y agoHow about using diff and sed -i? # This version is obviously unsafe verbose_sed() { sed -i.old -e "$1" "$2" diff -u "$2.old" "$2" rm "$2.old" } verbose_sed s/vim/emacs/g rant.txt You could then use all the tools that we already have for working with patches: colordiff to colorize the output, diffstat for a summary of changes, patch -R for reverting the changes, and so on. Of course, you're more likely to than not already using version control, which gives you all this and much more, even if you were to use vanilla find+sed.
- flogic 14y agoI don't think rewriting as a wrapper around sed would be an improvement. That would put you in the business of translating one regexp syntax into another which is probably more error prone.
- sharms 14y agoI really like the easy to use approach of replace, and don't understand why every hackernews comment falls back to sed and grep. Free software is about choice, and this project is certainly another viable one. Thank you for open sourcing it!
- halostatue 14y agoAgreed. It actually works a lot like zmv in zsh[1]. I probably won't use it but only because my stack is mostly Ruby and I generally use Ruby or sed for this sort of thing. [1] http://zshwiki.org/home/builtin/functions/zmv http://zshwiki.org/home/builtin/functions/zmv
- brotchie 14y agoThere exist two types of people: 1. "Hur hur, sed piped with other tools already does this, you loser, why did you waste your time?" 2. "Cool, a different take on sed written in Javascript. They've written some basic doco and made a npm package, I might try it." Ignore #1 online and in-person, be friends with #2. People who adhere to type 1 behaviour are alien to me. I fundamentally don't understand what their motivation is to respond with such harsh criticism. You've liberated some close source, personal tool, into the public domain. There's some group of people, perhaps in the long-tail, that will use this tool, or learn from the source code. Clearly people have expressed interest in the tool (74 stars and 5 forks). Again, ignore #1, friend #2.
- sharkbrainguy 14y agoI think you've excluded the middle here, (#1.5 perhaps) one who thinks that your code is worthless/dangerous and does not call you a loser. It can be true that a piece of software is a poor replacement for an existing tool. It can be true that recommending it as a replacement for that tool is dangerous. You can make these judgements about a piece of software without an incident like this happening. What's important here, is how you behave once you've made these judgements.
- nesquena 14y agoYeah I mean it's OK to make judgements and think or believe whatever you want. Maybe even tell how a friend or two how silly something seems to you while hanging out. It's a different thing to being a dick to someone publicly on the internet for trying to contribute positively to open-source.
- btown 14y ago> It can be true that recommending it as a replacement for that tool is dangerous. Unless you're suggesting that NASA rewrite its rocket guidance subroutines in a brand-new interpreted language or something, it's probably not unequivocally "dangerous." (In that case, I would call the suggester a different word than "loser".) That's the whole point of open-source software: everyone can make their own judgments about what works better for them. In the specific case of `replace`, if I want to know exactly what the command-line options do, exactly what order the files are being modified in, I can glance over 173 lines of javascript rather than search through the 4.3MB (uncompressed) of the sed source code. Sure, I suppose I'd have to include the Node.js source code to make it a fair comparison, but my point remains: choose the solution that makes the most sense to you.
- kenneth_reitz 14y agohttp://kennethreitz.org/be-cordial-or-be-on-your-way.html http://kennethreitz.org/be-cordial-or-be-on-your-way.html
- swdunlop 14y agoA quick scan of the project source doesn't suggest that "it makes my eyes bleed" was a fair criticism. It isn't going to cure cancer or solve deep problems, but who cares? The world is full of projects where people just snap a few cogs together and hit "Show HN" on their way to "... 3) Profit." If you are going to put something in the public space, you have to be ready for any trolls in the vicinity to take a dump on it. It's not fair, but it's the economy of attention and identity at work.
- MartinCron 14y ago"It makes my eyes bleed" is never fair criticism. It's vapid and meaningless and if I can implore just one person to stop saying it, I will feel like I have achieved something with my life.
- scarmig 14y agoNever say never. Imagine, say, a contact lens solution...
- MartinCron 14y agoMy wife actually did put in the contact lens deep cleaner into her eye instead of the regular saline drops. Her eyes didn't bleed, but we did get a tour of our neighborhood's lovely new Emergency Room.
- swanson 14y agoThis is pretty cringeworthy. I know probably everyone has made an offhanded jab about someone else's software (I know I have) - but in these days of twitter and real-time notifications, we have to remember that the real person behind something is often just a tweet away. I'll try to keep this in mind next time I take to twitter to unleash 140 characters on rage on something that someone has made and cares about.
- jrockway 14y agoI don't really see the problem. I never remember sed syntax and instead just use perl -e. It follows that someone may want to use JavaScript instead though I would personally avoid JavaScript at nearly any cost. As for haters on the Internet, yeah, welcome to the Internet. If you do something, chances are someone hates you. Why? They are jealous that you are getting attention instead of them. They could write a better version of grep, but are too unmotiviated, lazy, or dumb. So instead they trash your version. Attention flows back to them, they look smart in front of their friends, and ???, profit! You don't have to play a part in their fantasy, though. Just ignore them and let them bask in the idiocy of their idiot friends. Or, if they have actionable feedback ("line 34 is indented wrong"), fix it and send them a thank you. Investing any more thought than one of those options, though, is a waste of time and mental energy.
- zem 14y agothe worst bit is that a lot of the ridicule seems motivated by the fact that it's fashionable to hate on node.js. this tweet as much as admitted it: https://twitter.com/steveklabnik/status/293831920872194050 https://twitter.com/steveklabnik/status/293831920872194050
- ddrmaxgt37 14y agothe hatred of node.js always reminds me of anti-apple people.
- pekk 14y agoI have to say that node.js can be an entirely useful tool, and I can even support Heather's activity of making things she wants to use with it, without drinking kool-aid that node is better than everything and solves everything and should replace everything. And the same of Apple. It seems inaccurately simplistic to describe this as 'hate'.
- tptacek 14y agoThe worst bit about it is that it's part of a petty language squabble?
- magikarp 14y agoAs the lead developer for Cryptocat, this sure rung a bell for me.
- thirsteh 14y agoThere's something to be said about encouraging people to use crypto software that might not be well-written, though. To me, it's fine to write whatever you want in any language you want, but if you write an application and market it as "communicate securely and anonymously", or any kind of software that could put people's lives at risk, really--like Tor--you should be confident it is secure, i.e. that you know how to get it right. You are literally putting people's lives at risk, not just writing software that might be buggy, or which some people might not find useful. IMO, the "lol, look at this, pathetic" for using node.js is inexcusable (regardless of what your opinion about node.js, and for the record, mine isn't favorable), but "X application has serious security holes in their software that could put you at risk. Don't use it" is not. For example, I don't consider this "bullying": http://www.schneier.com/blog/archives/2012/08/cryptocat.html http://www.schneier.com/blog/archives/2012/08/cryptocat.html All this being said, I'm glad you powered through (https://blog.crypto.cat/2012/08/moving-to-a-browser-app-model/ https://blog.crypto.cat/2012/08/moving-to-a-browser-app-mode...) and solved the issues. OTR is awesome, and most of the critics have come around, AFAICT. Many others don't listen to this kind of feedback, and so deserve the critique all the more.
- magikarp 14y agoOh absolutely. As Schneier noted in that blog post, we did solve the issues that were presented to us, switched to a signed browser plugin, OTR, got a full audit, and so on. But other than the handful of awesome and helpful critique, man were people assholes on Twitter. I stand by Cryptocat being a usable privacy tool today, and I think we were quite responsible in our development process. There's always media hype making us look like something we're not (a magic bullet for activists and other people in danger to solve all their problems,) but that's why we have warnings everywhere on our website and inside the app itself.
- 14y ago
- jmillikin 14y ago> Then I see these people’s follower count, and I sob > harder. I can’t help but think of potential future > employers that are no longer potential. My name and > avatar are part of its identity, and it’s just one step > for a slightly curious person to see the idiot behind > this code. Oh come on now. Potential employers are not going to be crawling through your github on the off chance they can find a hastily-written script to laugh at. If they do claim that they won't hire you because you wrote this tool, they are lying to cover for some less socially-acceptable rejection cause. As for why people are laughing at this project, it's likely because you reimplemented a time-tested tool (sed) in a flavor-of-the-week platform (node-js) without any obvious awareness of how silly that looks. If you put a quick explanation in the README, like "I wanted a 'sed' that used Javascript regex syntax", then I doubt anyone would make any such fuss.
- protomyth 14y ago> Oh come on now. Potential employers are not going to > be crawling through your github on the off chance they > can find a hastily-written script to laugh at No, they won't, but they do sometimes hire something new and worse than Checklist HR folks, Social Media for HR Researchers. At some point someone is going to hit an automated connection between "Heroes" and negative comments on other's work. It actually sounds like a "good" startup idea. Klout for hiring.
- jmillikin 14y agoThe funny thing about companies with arbitrary automated no-hire filters in their hiring pipeline is that they tend to be places such a programmer wouldn't want to work at anyway. Say there's some HR department out there silently dropping any candidate that doesn't have a LiveJournal account. Would you worry? Would you even care?
- protomyth 14y agoDon't really know. I did get turned down for an internship because my high school was in the same area code as the college I went to (whole state is one area code). I really did want to work there.
- wasabian 14y agoFunny how @coreyhaines has made hugboard.com ("giving the gift of encouragement"), @steveklabnik is a maintainer of hacketyhack, a tool for learning how to program. "Hackety Hack will teach you the absolute basics of programming from the ground up. No previous programming experience is needed!" And while you're busy learning the basics, we'll just wait until you release something so we can publicly ridicule you on Twitter because you did something we don't approve of. Hurrah!
- jaequery 14y agohah, that's just pure irony
- redmattred 14y agoPeople will criticize your work, good or bad, can't take every comment on twitter to heart.
- thezoid 14y agoThe fact that these are "big deal" developers on some pretty important projects is the problem. Also the fact that Mr. Haines is always promoting improving ones craft by writing code makes his comments even worse. I feel that this comment on being a dick by jbrennan to be pretty decent: "Next time you feel like mocking another developer for his or her lack of skills in a certain area, stop yourself. Talk to the person and explain to them why you think something they are doing is incorrect or how it could be done better. This way, you don’t come off as a jerk, and the other developer learns something new and improves. And I’d be surprised if you didn’t learn something from the experience, too."
- btucker 14y agoTo quote Mark Twain: "Keep away from people who try to belittle your ambitions. Small people always do that, but the really great make you feel that you, too, can become great."
- deleted 14y ago[deleted]
- biesnecker 14y agoAt some point during my teenage years, my dad gave me the one of the most useful pieces of advice I've ever gotten: "the world is full of assholes, don't let 'em get you down, but don't put up with 'em, either." Or, in this case, don't work with them, or recommend that anyone you know work with them, because while the world is indeed full of assholes, it's also full of enough awesome people that you should never have to put up with the assholes.
- boyter 14y agoThat's similar advice to my favorite of Murphy's laws, "There is always one more arsehole then you counted on."
- dandelany 14y agoMany people here seem to be commenting on the quality of the code in question - they are clearly missing the point. Others are offering advice on how to deal with negative criticism on the Internet. They, too, miss the point. The point of this post isn't to complain "people trashed my work and now I feel bad, make me feel better", it's a call to action - "as a community, we should be better than this". Of course there will always be trolls and negative comments on the Internet. Instead of just preparing ourselves to deal with them, we need to be proactive about creating a community where everyone feels welcome to share what they're working on, even novices who don't write perfect code. (my previous thoughts on the matter: http://news.ycombinator.com/item?id=4700490 http://news.ycombinator.com/item?id=4700490 )
- jmillikin 14y ago> Of course there will always be trolls and negative > comments on the Internet. Instead of just preparing > ourselves to deal with them, we need to be proactive > about creating a community where everyone feels welcome > to share what they're working on "Instead of"? Attempts to reduce the number of undesirable comments or people in a community are commendable, but do not let yourself become confused about how well they work. Washing hands is no substitute for vaccination; if you want to grow a better community, then its members need to be trained both in how to avoid giving offense and how to avoid taking it.
- exit 14y ago> Many people here seem to be commenting on the quality of the code in question - they are clearly missing the point. i only see one comment responding to the code
- evolve2k 14y agoReimplementing existing tools is a great way to learn and enhance your code fu. Hats off to the author. Haters gonna hate.
- kstenerud 14y agoIt's bullying, plain and simple. There is no excuse for this kind of behavior, nor can I respect anyone who engages in it. Even now I feel my blood boiling...
- jlongster 14y agoWhat the fuck. (And I rarely say that word.) We've got to grow up. This is 9th grade all over again. You know, those weird people that do things that you don't understand? They're the ones that grow up and make big impacts on the world. Why can't we get over our negativity? We can't stop ourselves from thinking horrible things, or even saying them out loud to people around us, but surely we can restrain ourselves from publicly humiliating someone in front of thousands (or more) people. And for what purpose? To say "funny" things like "our eyes are bleeding!". Seriously? I really will never understand why people can't simply be more positive. If I ever start a company the #1 thing I will look for in others is positivity. I wouldn't stand for this crap.
- donniezazen 14y agoFolks on internet fail to understand that there are people on the other side of terminal and some civility is warranted. All of us should discourage uncivil behavior by non-participating in a silly conversation.
- doktrin 14y ago>> If I ever start a company the #1 thing I will look for in others is positivity. I wouldn't stand for this crap. What's conspicuously lacking here is not positivity per se, it's the absence of civility & decency. Those are two very different sets of attributes. Lack of an outright positive demeanor won't sink a team. Lacking civility and decency, however, will stick a severe wrench in any project. edit : On a personal note, reading this was unpleasant and embarrassing. I'm sorry the OP had to go through this. edit 2 : retracting the following statement after reading apologies published by those involved - "I'm glad I now know who not to interact with in the community"
- jlongster 14y agoI guess you're right. Civility also sounds less cheesy than positivity! I find that teams can be balanced with people positive and negative, and it's how you handle negativity that's important, which is what you point out.
- deleted 14y ago
- rachelbythebay 14y agoI get a fair amount of ridicule any time anything I write makes it into sites like reddit, and a small amount (depending on topic) when it makes it onto HN. When one of my posts hit the front page yesterday, I decided to re-read "How to Disagree": http://www.paulgraham.com/disagree.html http://www.paulgraham.com/disagree.html Having done that, I can now just privately laugh at anyone who fails to come up with an adequate refutation of my central point. People who just say things like "this is crap" can be prodded like "okay, maybe it is, but you didn't say how", and then when they fail to come up with how, you know where they are functioning. It looks like she did exactly this (asked them to explain it) on Twitter, and got the same sort of "it just sucks" reply. Eventually, you can get to a point where they can be safely ignored or even used for your own personal entertainment. One sent to me on HN: "What an asshole. Chromium's code is there for review, you know." I said in reply: "Thanks! Comments like this mean I'm on the right track." Yeah, it's stupid that you have to suffer before you can get to this point, but it's not like we're talking about an industry which defaults to caring for others. ... Regarding the actual program, I don't write shell utilities in JavaScript so I can't say whether it's a good or a bad implementation. It's just not my space. It's not something I seem to need (since I tend to abuse perl to do such work), so I can't comment on the overall utility, either.
- jmillikin 14y ago> Regarding the actual program, I don't write shell > utilities in JavaScript so I can't say whether it's a > good or a bad implementation. It's just not my space. According to some other posts here, the quoted mockers are Ruby programmers. I believe the Twitter posts are about the concept of writing sed in Node-Javascript, not necessarily the implementation. As I understand it there's something of a rivalry between the Ruby and Node communities, and the Ruby community is known to be tolerant of boorish behavior.
- rachelbythebay 14y agoHum. It reminds me of performance art, to be honest.
- spohlenz 14y agoI was pretty appalled when I first saw those tweets. I held my tongue at the time (after all, who am I?) but as a member of the Rails community, seeing this sort of behaviour from community leaders is frustrating and kind of embarrassing, and I do think it needs calling out when it happens. I'm finding Twitter has become more and more depressing lately with similar incidents. I don't know much of Dave or any others who stuck the boot in, but Steve and Corey are both involved in educational endeavours and should know better. Steve also recently railed against the idea that "you are not your code" (https://twitter.com/steveklabnik/status/279399353729286145 https://twitter.com/steveklabnik/status/279399353729286145) which makes his jab even more insulting. I've often wondered why concepts such as MINSWAN even exist, but it seems some people actually have to be reminded to be nice. If they haven't already, they definitely owe you an apology.
- mintplant 14y ago> Steve Klabnik @steveklabnik > @harthvader @zeeg nothing's _wrong_ with it, but I don't want to build my app on top of others' code who are at this level of understanding This message [1] in particular is absolutely disgusting. Someone hacked together a script that met their needs, and threw it up onto GitHub in case anyone else found it useful? Yes, let's take the opportunity to condescendingly insult their mental competency. What does he even mean by saying that he doesn't "want to build my app" on top of harthur's code? Nobody asked him to; steveklabnik himself made the original post, taking the opportunity to show off this smug sense of superiority. [1] https://twitter.com/harthvader/status/293829635823792128 https://twitter.com/harthvader/status/293829635823792128
- nesquena 14y agoWhat a great idea to go around calling other people stupid for creating personal open-source projects that they enjoy using, mocking their competence and treating them as if they should go away because they aren't as good as you. What a productive use of a developer's time.
- mintplant 14y agoEven stranger is the fact that harther isn't exactly a novice programmer: apparently, she's part of Mozilla [1], and wrote brain.js [2], a neural network library in JavaScript with almost 1,400 stars on GitHub. [1] https://twitter.com/harthvader https://twitter.com/harthvader [2] https://github.com/harthur/brain https://github.com/harthur/brain
- nesquena 14y agobrain looks pretty cool and I also noticed she not only works at mozilla but also regularly speaks at conferences. Weird how judging a person's competence based on looking at a single for fun open source project may not be a great idea.
- gfodor 14y agowhich is doubly embarrassing for the people insulting her because odds are anyone taking the time chastising someone's hacky duct tape script as if it were a Real Thing Worth Talking About probably has no comprehension of real algorithmic work, real computer science, like that needed to implement neural nets.
- orangethirty 14y agoI was about to contribute to an OSS project run by one of the people making fun of the OP. Not anymore. I will not work with people who set out to humiliate others on "code quality" (whatever the fuck that means).
- beering 14y agoDoes this make sense? Are there other many people that use that project? Does your contribution to it signify an endorsement of its maintainer? Have you already written the code? Is it fair to the other users of this project that you're withholding a contribution because of an idiotic remark by its maintainer? Would it be preferable to fork the project so that the maintainer can be somebody else? What if you create your own fork with your contribution and publish it? What if the other person who made fun of OP then merges your changes back into the original codebase? I can't tell if this is an attempt at activism or an excuse to avoid doing something.
- orangethirty 14y agoHere is why: Ever since the passing of Mr. Swartz my stance has changed. I've realized that e-bullying is real and can have a negative impact on a person. Who knows in what kind of emotional condition can the person being bullied is? I'm not saying that this could drive someone to do something tragic. But it could push them further down. And I will not work or contribute with people who do that. The person was bullied. I will not work with bullies. Open source or not.
- wippler 14y ago"Most of being nice, in a software context, is about being considerate. Not unnecessarily trash talking other people's stuff. Not going out of your way to be a jerk. Try to be helpful. Treat others how you want to be treated" - http://blog.steveklabnik.com/posts/2011-08-19-matz-is-nice-so-we-are-nice http://blog.steveklabnik.com/posts/2011-08-19-matz-is-nice-s... What can I say?
- d4vlx 14y agoThe irony, it burns. I have a feeling there is an apology incoming. Everyone screws up and most people will poke some fun at some point. Seems like one of those off instances for him.
- tylerlh 14y agoSteve Klabnik runs Hackety Hack (http://hackety.com/ http://hackety.com/) which is supposed to encourage and teach new programmers, but this is the shit he says to other developers in the wild? Nice.
- zachrose 14y agoharthur, your work is awesome.
- ryan-allen 14y agoI kind of expect more from Corey Haines, he's supposed to have a reasonable reputation according to people I know and trust. I'm supposed to be going to one of his 'Code Retreats' in Melbourne this year. I hope I don't get made fun of! Good code seems to be whatever the majority of nodding heads agree upon, and rarely that is merit based. It seems to me that unfortunately most of the nodding heads are people who act like this. I've been ridiculed for my code by people like this, even in situations whereby I've been trying to help solve their annoying problem (and in fact, did help solve their problem). What did I get back? Mostly condescension & ridicule, and no credit. Anyway, if anyone wonders why valuable people run screaming from the software industry, it's people acting like this.
- e4c5shev 14y agoWhy would you go to his code retreat? Seriously? I am stumped. As far as I can tell he is just some guy who has engineered a healthy social media profile / following, and goes around beating his drum. Basically an agile-coach charlatan. I suspect it is very likely you already know just as much, if not more, about software development.
- tiktaktoe 14y agoThis is pretty awful. Steve and Corey are both well-known in the Ruby community. Steve is an instructor at gSchool in Denver, for example, which trains software engineers. It's bad enough that they're both respected in the community, but being a student is a vulnerable position. If Steve were my teacher and he reacted that way to a project I released, I'd be absolutely humiliated. http://www.gschool.it/#instructors http://www.gschool.it/#instructors I don't think encouraging participation in open source and being a good teacher are that different. A more productive response would've been to submit some issues or pull requests to Heather's project.
- bmmayer1 14y agoFor years I have been terrified about putting my code on Github for fear of rage and retribution from the programmer community. This is a real problem for us amateur coders who enjoy hacking but don't necessarily have the chops to go head-to-head with the serious guys.
- citricsquid 14y agoLikewise. I finally gathered the courage to start open sourcing code recently, I figure that if the code I'm writing is shit then it's going to be shit whether it's on my hard drive or on github and the advantages of having code out there are worth the potential ridicule... but still I find myself prefacing everything with a disclaimer, "I was tired when I wrote this" or "This isn't the best code" just to give myself a get out if someone does decide to tear apart the quality of my code.
- rozap 14y agoA completely agree here. Even though I get complimented at work about code quality, I just feel like the open source community is somehow "more serious". Like, what if I'm doing this whole coding thing completely wrong?
- talmand 14y agoYou shouldn't write those type of things. I mean, you can comment about potential problems in the code and whatnot, but don't disclaimer your code like that before anyone even complains about it. Most of the "your code sucks" comments is based more around you didn't do things like they would have. Such as: "You didn't use OO principles the way I interpret them so you suck." "You used that library/framework/language that I hate so you suck." "You're not coding in my *nix flavor with my choice of IDE so you suck." "Your project does something I already do with this other project so you suck." Rarely do I see actual constructive comments on how the person in question can get better. At this point I'd rather communicate with a bunch of nobodies and learn together than follow somebodies that ridicule someone for trying.
- krapp 14y agoAs soon as I put some of my code up on Github I started to worry that someone might actually find it. It can be a bit intimidating. I can only imagine what'll happen once I learn to contribute to something.
- brunolazzaro 14y agoI can't find any reasons to tweet stuff like that. Pretty sad to see that the mentality of some "popular" developer is.
- re_todd 14y agoYeah, if they really had to get off on criticizing other's code, why not use IM or email? To do it on such a public place as twitter is kind of cruel.
- eranation 14y agoI'm surprised no one mentioned it, but hey, there are people using windows out there where that can use this (instead of installing cygwin, or finding out what on earth is the equivalent of grep on windows command line) I think it's just immature behavior to criticize like this and I'm happy to see the top voted comments here Criticize in private, praise in public. Otherwise you are just a bully.
- lulzy 14y agoPassive aggressive, backhanded shadow dweller. Of course you criticize in public. That's the ENTIRE point of creative expression... to endure the reactions of your efforts!
- davidbrenneman 14y agoI wonder if the amount of ridicule correlates with the fact that the author is a woman?
- twog 14y agoOh the irony http://blog.steveklabnik.com/posts/2011-08-19-matz-is-nice-so-we-are-nice http://blog.steveklabnik.com/posts/2011-08-19-matz-is-nice-s...
- d4vlx 14y agoDeveloper elitism at it again. The dev community really needs to lose this trait.
- bstar77 14y agoI've been following 2 of the 3 guys in that twitter conversation for several years. The first thing I can say is that they both are big parts of the ruby community and generally represent it well. With that said, this exchange really upsets me. I've noticed that there is definitely a sense of elitism among the guys that speak at many of the ruby conferences. I think a situation like this is simply a case of them forgetting that Twitter is public and that their personal message board isn't so personal after all. Guys, this is bullying and it's fucking pathetic. It's not the first time, but it needs to be the last. I've at least seen Cory talk and the guy is definitely one of the good guys, but this puts him in really bad light. How much more effort would it have been to post a defect to the github account and informing of the issues?
- mbreese 14y agoAnd when you say that they are part of the Ruby community, it's sad, but I said to myself - why doesn't that surprise me. It's said that the community behind a really useful language has that type of reputation. To tell you the truth, it's part of why I moved to python.
- stoprock 14y agoI take it you haven't seen @zeeg's tweets on the subject, then: https://twitter.com/zeeg https://twitter.com/zeeg Sorry to disillusion you about the Python community. Personally, part of the reason I stopped using Python heavily professionally in 2007 is because I was sick of hearing and reading Python web developers regularly disparage Ruby and the "Ruby community," a tradition carried on in comments like yours to this day.
- zeeg 14y agoAre you suggesting I was talking bad about the Ruby community? I openly dislike Ruby (as a language), but I swear this project was written in Node, which I also dislike. Oh, and I could care less which language something is written in, my simple, trollish tweet, was only based on the usability aspect.
- pan69 14y agoThe truth is that there are a whole bunch of morons out there with petty little opinions and with no real achievements of themselves. They call the people Trolls (with a capital T). Ignore them.
- pekk 14y agoThey are still trolls even if they have a twitter following or have made some money.
- paulhauggis 14y agoThe open source zealots have been like this for years. 5 or 6 years ago, I forked a project and started charging for it. I was completely within my rights to do so as I followed the license (GNU) specifically and also gave out the full source code. This didn't stop the death threats, taunts, and aggression I got from the general community. This and things like the recent word press theme debacle have put a bad taste in my mouth when it comes to open source.
- crowbar 14y agoSeeing this sort of negative behavior, both in groups online and off and coding and not, affected me greatly, even when I wasn't the target. On one hand, it gave me pause to consider and critique my own work, enhancing the final product. On the other hand, it made me go into over-perfectionist overdrive and too scared to release stuff lest "everyone" hates it. This fear, however irrational, has gripped me for many years. Stories, scripts and projects being left in folders partially because I wasn't sure where to go with them, but I believe in part that I was too scared to see it through and be rejected (The McFly effect, if you will.) I'm only now just coming to terms with it and learning how to, excusing the french, not give a fuck what others think. If I'm happy with it, that's a great start. It's like with improv comedy: Denying the other person doesn't go anywhere and typically ruins the whole scene. Working with the other person in a positive light,though, goes miles and miles.
- deleted 14y ago[deleted]
- deleted 14y ago[deleted]
- deleted 14y ago[deleted]
- kt9 14y agoI don't know Steve Klabnik or Corey Haines (or any of the other people mentioned in the post), but I just lost a lot of respect for them. If I do come across them (in a forum, in person etc), I'll remember more about how they tend to make disparaging comments about people on the internet rather than any code on github. Lastly, kudos to you for writing code, solving a problem and putting it out there. I think is great what you're doing and you should ignore non-constructive criticism.
- keyboardP 14y agoFirst time I've come across them too but the irony of Steve Klabnik's post is incredible http://blog.steveklabnik.com/posts/2011-08-19-matz-is-nice-so-we-are-nice http://blog.steveklabnik.com/posts/2011-08-19-matz-is-nice-s...
- maxdeliso 14y agoThis is kind of saddening to see, but it is a crime that virtually every programmer has committed at one point or another in their careers. Let's be honest - in some cases it can be quite fun to do. The underlying problem is the ego, and the corresponding lack of objectivity that results. From reading someone else's code - even glancing at it in some cases - one can infer a great many things. For example, if the indentation on some code is totally borked, most programmers will immediately be extremely doubtful about whether that code contains any interesting or useful ideas (though of course this is not always the case, counterexample being intentionally obfuscated code). In some cases, they will simply refuse to continue attempting to understand the code and dismiss it as useless. A similar thing can happen at the semantic level when the programmer detects a mismatch between the language/framework being used and the problem space; this dissonance is likely what is irking all of the people who are so childishly ridiculing your replace utility. Sometimes when you're looking over someone else's code you spot some perceived inconsistencies/flaws/bugs. The crucially important part is what you do next. If you choose the route of publicly shaming them to stroke your own ego, then you have not only hurt yourself by appearing childish, insecure and unsociable, but you have also hurt their feelings. It's important to remain objective in these situations, and take the self out of the equation. If you HAVE to indulge yourself by tearing the code apart in a humorous manner then at least keep it between with your friends! As I alluded before, I would guess that the reason people where poking fun at it was probably because there exist a lot of other utilities which have the same functionality and are readily available on most any system. Personally, I thought your code was interesting, and I thank you for choosing to make it public :).
- deleted 14y ago[deleted]
- kyro 14y agoThat's pretty infuriating. Learn to grow callous to it, laugh it off, and bury your head in the ground and keep pushing forward. You'll have assholes from every corner of the earth say demeaning things. But now I know Steve Klabnik is a dick, and Heather Arthur is a decent human being who's willing to put her work out there. Keep doing that and you'll be the happier person in the end.
- dougk16 14y agoApology from one of the tweeters: http://programmingtour.blogspot.com/2013/01/im-sorry.html http://programmingtour.blogspot.com/2013/01/im-sorry.html
- ddunkin 14y agoIt looks fine to me, I would actually use something like this internally for employees who can't regex. Except the node.js part, but that doesn't make it any less useful, I respect that other people use other tools. The part that I see some may disagree with, is when these apps are posted in public repository indexes (npm). I feel a usefulness filter should be applied. That may be at the heart of the comments. Not that it was posted publicly, but that it was included with a generic name in a public repository (https://npmjs.org/package/replace https://npmjs.org/package/replace), now it has the potential to be annoying to some users. The way these guys disagreed was just, ugh. I write all sorts of cool little networking utilities for my company, but they were not ever intended for an end user, but could be used or adapted by someone else very quickly. My code doesn't leave my company (probably shouldn't, I'd get torn up just like this, I know it). If it did, I would just not want it in a repository.
- jeffdavis 14y agoI agree with the other comments here. It reminded me, unfortunately, that I did something like that once: http://thoughts.davisjeff.com/2007/11/17/700-queries-for-one-page-load/ http://thoughts.davisjeff.com/2007/11/17/700-queries-for-one... I can rationalize it in a few different ways, I'm sure. But the bottom line is that, if it's open source software, the correct approach is to either offer constructive criticism directly to the developers, or just not say anything without being directly prompted (e.g. "should we use this software"). I can see exceptions for major projects with a large developer base. You still need to keep it constructive, but I don't necessarily think you have a responsibility to join the mailing list for everything you want to complain about.
- Anechoic 14y agoFWIW, Corey Haines apologized: http://programmingtour.blogspot.com/2013/01/im-sorry.html http://programmingtour.blogspot.com/2013/01/im-sorry.html
- biesnecker 14y ago> FWIW FWIW, I personally think it's worth a lot. It's easy to be nasty on the internet and a lot harder to be nice.
- talklittle 14y ago> a lot harder to be nice Until all eyes are on you, and you know they're calling for blood. Then it becomes very easy.
- biesnecker 14y agoNot always. Don't underestimate the strength of pride (though in this case, over a tweet, you're probably right).
- Mutinix 14y ago"though in this case, over a tweet, you're probably right" Well, maybe not: https://twitter.com/zeeg/status/294305445521268736 https://twitter.com/zeeg/status/294305445521268736
- tlear 14y agoYou have been ridiculed by a RoR core team member.. that is pretty awesome.
- marshray 14y agoInorite? A Rails core developer dissing someone for gratuitious use of Node.js. Now I've seen it all. This project https://github.com/harthur/replace https://github.com/harthur/replace is some of the least sucky code you're likely to see in a month of reading Javascript.
- xs_kid 14y agowho's a rails core team member? klabnik isn't: http://rubyonrails.org/core http://rubyonrails.org/core
- donnfelker 14y agoThis code is better than 90% of the code I've seen. Why? It shipped.
- IvyMike 14y agoYou know, reading the various devs' tweets, they use twitter in a way that is completely foreign to me. Is there anything these guys think that they don't tweet? ("Hey, who's picking me up from the hotel?" is not something I'd ever announce to the world at large.) This incident shows a danger of working that way--one of these guys apparently had a rude little thought best kept private--and let's admit it, we all have those thoughts at one time or another. But because he tweets everything, that little passing thought was pushed to the world, which is not good for anyone involved.
- confluence 14y agoWhich is funny because the guy pictured, Steve Kablink, has this sentence on his about me page: > Most of my software development work is in teaching these days. I run classes with Jumpstart Lab, and make Hackety Hack You'd think a "teacher" wouldn't act like this - but so arrogance goes. With open source - your complaints are worth zero which is the exact same price you paid for the software. Help others with pull requests/contributions - or shut the hell up.
- nowarninglabel 14y agoMan I know how this feels. The very first piece of code I ever open-sourced (5 years ago) was put on a "Wall of Shame". Turned out though that the person doing this had never even looked at my code, they were just a petty, jealous person who saw something with a title that irked them. I don't claim to have great code, but I am happy to still be putting lots of open-source code out there, and I'm happy I didn't let that first asshole discourage me. Fortunately, the rest of the community saw that this guy was an asshole, and the "wall of shame" was quickly brought down, but it'd be really nice if we didn't let such petty assholes make it into a position where they can ridicule people in such a public and far-reaching way in the first place.
- coreyhaines 14y agoOthers have linked to this, but, as one of the people who was in the bad, I want to say I'm sorry. http://programmingtour.blogspot.com/2013/01/im-sorry.html http://programmingtour.blogspot.com/2013/01/im-sorry.html
- deleted 14y ago[deleted]
- confluence 14y agoGood that you didn't double down. Wouldn't want to be on the back end of a hacker news shit storm :)
- kamaal 14y agoFrankly, I think by now I've sort of got used to it. Its not just the case with Open source projects, This happens everywhere. I've been facing these sort of problems since I was a kid. Be the first guy to build a model from clay, or the one to write an essay, or the one to participate in the science exhibition. Nearly everyone will first find ways to crap on your work than find something positive about it. After all these years, I just feel these are just ways a guy who doesn't work find a way to justify his inaction. Just make others work look bad, and then you can just go back relax and do nothing. Make your inaction look better than than the guys action. People just don't get 90% of all success is just showing up thingy. Now coming to this project, a guy on twitter as shown on the blog says 'Ever wanted to make sed or grep worse?'- Oh! What does this guy think? Sed and grep are the best designed tools out there? Heck learning sed is a nightmare- the language is so terse it may take you months to make any significant headway learning it. There are like dozens of special cases you have to learn and handle. Then why does sed win? It wins because the tool occupies space where there is no, or little competition. Sed shows up!!! Everytime you see somebody produce a piece of work which is helpful in solving a problem think about why you couldn't have been the guy who could have done that, instead of finding ways to justify why you aren't have the guy who did that. At the end, only ones who don't get laughed at are the ones who do nothing.
- kurko 14y agoKlabnik is the first to fight for rights etc, now he's doing exactly the opposite. He's trying to rise his own status by decreasing others'. I wonder if all his fights aren't just a means to justify his own weaknesses and need to feel superior.
- kysol 14y agoI'm amazed someone hasn't said "well that escalated quickly". On topic, I've never really released code due to being scared of peer-disapproval, and also paranoid from the public display of potential attack vectors I haven't seen. I don't think that I will ever open source a live project due to these issues. You should never say "that's bad code" without giving a reason why, and or showing how to make the code better. It's like walking out of a new release block buster movie and saying in a louder than normal voice "well that movie was bad". Anyone that can hear is going to start questioning, "what movie?", "why was it bad?", and instantly they are going to start wondering if the next 3 hours of their life is going to be wasted. Basically I put this down to a generation of self absorbed twats that like to hear their own voice, and feel all warm and fuzzy inside when ever they grunt something "amusing" to their minions.
- pg 14y agoMaybe before we spend a lot of time complaining about how federal prosecutors are unsympathetic assholes, we should start by examining our own community.
- carlio 14y agoA similar sentiment: http://www.shirky.com/weblog/2013/01/remembering-aaron-by-taking-care-of-each-other/ http://www.shirky.com/weblog/2013/01/remembering-aaron-by-ta...
- heartbreak 14y agoBetter yet - let's do both.
- jcampbell1 14y agoDeath, prison, and felony convictions are not the same as public ridicule and hurt feelings. Only a nazi would equate such things. What?
- dmix 14y agoI'm also not seeing the connection here. A few mean tweets over code quality vs threatening someone with life sentences over downloading documents is a very poor analogy on how we should be spending our time.
- dbul 14y agoBoth of you seem to think he said "instead." Consider the clauses rephrased: "Maybe we should start by examining our own community, before ..." Why? I'd guess because the blog post refers to celebrity hackers bullying another hacker. The community -- more than just these few guys -- can't even behave civilly. It's a case of the pot calling the kettle black.
- dmix 14y agoCompare the cause-and-effect of both the situations. One can send someone to jail for life and destroy their finances, reputation etc... the other can hurt someones feelings. Contending the latter should be addressed before (or even comparatively) to the former is what I take issue with.
- numbnuts 14y agoSteve Klabnik's apology: https://twitter.com/steveklabnik/status/294302391279435776 https://twitter.com/steveklabnik/status/294302391279435776 https://twitter.com/steveklabnik/status/294302539510337536 https://twitter.com/steveklabnik/status/294302539510337536 He posted this ~2 years ago: http://blog.steveklabnik.com/posts/2010-09-24-trolling-is-a-art http://blog.steveklabnik.com/posts/2010-09-24-trolling-is-a-... I guess he's still working on his communication skills.
- Gigablah 14y agoThat second tweet still makes him look like an enormous douche. You're right about the communication skills.
- rdegges 14y agoDavid Cramer's response (via Twitter): "Are you mad that the Internet disagrees with you? Maybe get off the Internet?" https://twitter.com/zeeg/status/294305445521268736 https://twitter.com/zeeg/status/294305445521268736
- confluence 14y agoDouche is as douche does.
- ceol 14y agoI got into an online argument with David Cramer years ago about something truly meaningless, but the notion that he is an asshole just stuck with me for some reason. He seems like a terrible representative for Disqus. I wouldn't be surprised if a few people were turned off from working there when they discovered they would have to work with him.
- zeeg 14y agoRemember that time you disagreed with me and had to write an entire (factually incorrect) blog post about it? I assume you like internet drama.
- camus 14y agobig shots tend to forget they are just humans and make mistakes. like all of us.
- kevinalexbrown 14y agoThen I see these people’s follower count, and I sob harder. I can’t help but think of potential future employers that are no longer potential. There's a big responsibility that comes with being well-liked and nice. When someone with a good reputation and the means to broadcast it speaks negatively about someone, it matters much more than someone who is routinely rude, frequently negative, or unknown. I know that if the most well-liked and nice person in my lab were to criticize my ability as a scientist (in the same manner), I would worry about what everyone else thought about me now, that someone who never seems to say mean things would so something like that. These individuals do good things: they contribute voluntarily to communities, they help high school kids learn to code, etc. And these individuals are visible. And if you search steveklabnik on HN, his comments don't seem mean or negative. It's easy to forget, and it's a little paradoxical, but when you're really nice, there's a different standard. Perhaps there shouldn't be, but it does have a different impact.
- doktrin 14y agoFair point. Once I read the names of those involved, I was a little taken aback for this very reason. Friends I respect think quite highly of Corey, for instance. Also worth noting, both [Steve and Corey] have published apologies on their own blogs. Both are worth reading.
- darkxanthos 14y agoHere's a link to that apology: http://programmingtour.blogspot.com/2013/01/im-sorry.html http://programmingtour.blogspot.com/2013/01/im-sorry.html I know Corey and don't really know too much about what happened here, so I'll only say he's one of the most positive and supportive people I know.
- ahi 14y ago-1 in my regard for being a jerk. +2 for a sincere apology. A reminder that owning up to a mistake can make that mistake go away and then some.
- manish_gill 14y agoI don't care how "popular" these guys are, they are douchebags. This kind of bullshit behavior is stopping me from trying Ruby.
- xentronium 14y agoWhich is kind of sad, since old ruby community even had MINSWAN motto (Matz Is Nice So We Are Nice). I don't know when and why everybody became so abrasive.
- mbillie1 14y agoThis makes me sad, as a Ruby dev. This does not represent all of us, although apparently it represents a lot of the higher-profile public-facing members of the "Ruby" (Rails) community. There are lots of us aren't like this. I guess we will have to become more vocal.
- mrb 14y agoHeather, I agree that people are unnecessarily rude to you. Don't sob. Your code shows you are already a more capable programmer than most of the ones I interview. No one has given you a clear answer as to why your code is reinventing the wheel, so allow me to do it politely. I took every single example from your README, and show you below how everything can be reimplemented with sed -r (nice extended regex syntax, mostly like js regexs), and find/xargs: replace 'var' 'let' * sed -ri 's,var,let,g' * replace 'var' 'let' . -r find . -type f -print0 | xargs -0 sed -ri 's,var,let,g' replace 'var' 'let' test/file1.js test/file2.js sed -ri 's,var,let,g' test/file1.js test/file2.js replace '(\w+)_(\w+)' '$1-$2' * sed -ri 's,(\w+)_(\w+),\1-\2,g' * replace 'var' 'let' . -r --include="*.js" find . -type f -name '*.js' -print0 | xargs -0 sed -ri 's,var,let,g' replace 'var' 'let' . -r --exclude="*.min.js,*.py" find . -type f ! -name '*.min.js' ! -name '*.py' -print0 | xargs -0 sed -ri 's,var,let,g' replace 'var' 'let' . -r --preview find . -type f -exec sh -c "echo == {}; sed -r 's,var,let,g' {}" \; (not sure if --preview does exactly that, I echo the filename followed by the modified content) There is only one case that justifies reimplementing things: if your tool has the requirement of supporting the exact js regex syntax, then yes you did the right thing to reimplement this in js. I have run into similar situations myself. One time I had to support Perl regexs, and I started by simply using Python's standard regex module, thinking that it would work because both Perl and Python use PCRE. Well as it turned out the regexs I encountered used some advanced features (such as negative/postive look-behind/look-ahead, etc) that Python's regex module plainly did not suppport. So I ended up rewriting part of my implementation in Perl. Edit: I spoke too fast. As a commenter pointed out, other legitimate cases for reimplementing this in js would be when you can't afford to or don't want to fork a process to run find/xargs/sed. It sounds like you were running the tool from the command line, so I didn't think that would be your situation. Edit 2: Yes, the exercise of reinventing the wheel is also useful for learning... I am not going to argue that. Edit 3: If you care about simplicity, I would personally rather write a small shell script wrapping find/xargs/sed and hiding their arcane options, as opposed to writing 173 lines of js.
- enjo 14y agoI'd ague that her version is at the very least syntactically much easier to use.
- ispivey 14y ago$> diff @coreyhaines-apology @steveklabnik-apology < grace --- > sorry if i made you upset A side-by-side example we can all use to learn how to apologize better. [1] http://programmingtour.blogspot.com/2013/01/im-sorry.html http://programmingtour.blogspot.com/2013/01/im-sorry.html [2] http://blog.steveklabnik.com/posts/2013-01-23-node http://blog.steveklabnik.com/posts/2013-01-23-node
- marcamillion 14y agoThis is par for the course in the Rails community. Once some Rails devs get more experienced, they think it's ok to shit on everyone else. Granted, not all are like that...but many are. God forbid you should stumble into #RubyOnRails on IRC. Thank God for Stack Overflow!
- mbillie1 14y agoThis to me is very unfortunate. I'm an experienced Ruby and RubyOnRails developer, and I think that this is totally unacceptable. This is why the Python community flourishes (and I learned to code with Python!), and the Ruby community, which has unfortunately become equated to the Rails community, relatively languishes. I also think it's pretty funny/awful/ridiculous to see Rails devs hating on JS code. (JS is difficult to write well, and is NO LESS FUBAR than your average 3+year old Rails app). As recently as Rails 2.x, Rails was using Prototype... how'd that work out? For fuck's sake, how much human decency does it take to be civilized and constructive?
- stoprock 14y agoResponses to Heather's post from a relatively well-known Python developer: https://twitter.com/zeeg/status/294305445521268736 https://twitter.com/zeeg/status/294305445521268736 https://twitter.com/zeeg/status/294306974248607745 https://twitter.com/zeeg/status/294306974248607745 https://twitter.com/zeeg/status/294307486331187201 https://twitter.com/zeeg/status/294307486331187201 I guess it's just not all that black and white, is it?
- marcamillion 14y agoYeh...I have had brash remarks from #Ruby too and not to mention #PHP and other communities for other languages. So I don't think this is exclusive to the Rails community. But, what pisses me off so much - and disappoints me more, is that Ruby (and by extension Rails) is such a beautiful language that allows me to do so much with such clear, and elegant syntax - that I have an expectation that other Rails & Ruby developers would generally be pleasant and nice. Not dicks riding on their high horse because they are the tallest kids in their corner of the playground. When, in the big scheme of things, they are just 3 feet tall. This particular instance is even doubly disappointing because I love Hackety Hack and Shoes.rb (which both are made for beginners). Why on earth would I now dedicate some of my time, when I know the maintainer will probably be ridiculing my code behind my back? Now this has just confirmed it. It's actually quite sad and disappointing. No amount of apologizing will make up for it - unfortunately.
- 0xDECAFFEE 14y agoThis is why I won't contribute to Open Source. I was floored when I saw who was involved. People I have met a few times. Some even call them selfs craftsman, really? I think I will steer clear of these "craftsman" for now on.
- mark_l_watson 14y agoI don't do much JavaScript or Node development but her projects look cool. As frustrating as this must have been for Heather, I hope that in the long run she might get some value from the publicity. I was going to comment on the twits (misspelling intentional) but decided to stay positive.
- jpeg_hero 14y agoI always cringe when i see a blog post along the lines of "A great way to do X in unix" because it is almost always followed by the true unix gurus coming on and schooling the poster. literally, people: assume any unix script you post, no matter how trivial, must meet the standards of a mathematical proof to Fermat's Last Theorem. and i must confess, i look down on bloggers that blithely post a unix script. Not because of their lack of Unix foo, but rather the shear naivete of posting it (and the ignorance of the fact that the grey wizards will come out of their tower and pound you for anything less than perfection)
- jpeg_hero 14y agodude, unix is serious.... oh, wait a minute... Never mind. "Everybody gets a Trophy!!!!!"
- almost_usual 14y agoFuck it, ship it. At least you're contributing to the world and bettering yourself.
- madhadron 14y agoMore important: why are you listening to what anyone on Twitter says? For that matter, why are you listening to what anyone on Hacker News says (assuming you read this)? Personally, I have no idea what anyone might have said about any of my code on github on Twitter, blogs, or otherwise. No, scratch that, I remember a terrifying moment when I realized the link in a sentence along the lines of "who says Haskell isn't ready for the real world?" pointing to my serial port library in that language. Anyway, that's beside the point. You should have a short list of people whose opinion matters. Hint: your family, a set of people whose character and abilities you respect, and anyone who has direct power over you (though if the third isn't a subset of the second, you might want to work on that, too). Random people on the Internet don't count, no matter how famous they may be in their sandbox.
- jpeg_hero 14y agoa girl? does that make a difference? (honest question)
- evanprodromou 14y agoHere are some of Heather Arthur's other projects on Github: https://github.com/harthur/brain https://github.com/harthur/brain - neural network https://github.com/harthur/classifier https://github.com/harthur/classifier - bayesian classifier https://github.com/harthur/clusterfck https://github.com/harthur/clusterfck - clustering https://github.com/harthur/glossary https://github.com/harthur/glossary - term extraction You can see more here: https://github.com/harthur?tab=repositories https://github.com/harthur?tab=repositories Nice stuff.
- deleted 14y ago[deleted]
- suhair 14y agoThe disturbing thing is I never expected such a behavior/ being an accidental asshole (as he has later confessed) from a reputable online identity like @steveklabnik, a contributor to http://thechangelog.com http://thechangelog.com besides many things
- michaelwww 14y agoI hate to say this -- as an older person -- the only solution is to get a thicker skin, because people on occasion are going to be assholes to you. Even good people in a moment of snark. Even when they completely misunderstand what you did and that it is good. And worse, there are those who just tear down anything. It's just a fact of life. I suggest you read Feynman's "What do you care what other people think?" It helped me a lot.
- dasil003 14y agoSpot on, this does get easier as one gets older, but one thing that makes it harder is Twitter itself. The nature of Twitter seems to create a primary-school-like atmosphere because of the short format and asymmetrical following mechanism. When you don't have the bidirectional communication it creates an effect like young children or people with underdeveloped social skills where you don't see peoples reactions and have a poor sense of what's really going on around you.
- serf 14y agoReverse misogyny. Had a man wrote a blog entry about crying due to 'boohoo comments' on the internet would get chastised out of the industry. A woman writes a blog entry about how her feelings get hurt and everyone with a set of swingers breaks down , puts on their big boy/high moral pants, and makes a grandiose apology (via published blog post, rather than private channels, because the fanbase must be informed lest we reduce our hits per month!) Is this really a 250+ post thread about someone getting offended on the internet? Want to see an artist get offended about their work? Go check out deviant art. Open code is inevitably peer reviewed. The development community since the mid 80s has been notorious relaxed, leisurely, casual. No suit, no tie culture. Are you really upset that you received a negative peer review in casual tongue? Science has a similiar dilemma with peer review causing depression. Science and academia, however, do not have the same casual environment, however, and that is reflected in the peer review. Instead of "My eyes are bleeding", you receive things like "Das ist nicht nur nicht richtig, es ist nicht einmal falsch!" ("Not only is it not right, it's not even wrong!") Is that not rude? Don't open up your code and you won't receive harsh sentiments from those that read it. Worked for MS.
- michh 14y agoOr, you know, be nice, constructive and positive and encourage people to open up their code. Maybe someone's poorly written tool might save you a days work in the future. Also, there's a difference between peer review and making fun of them/attacking them. If you can't see the difference, I wouldn't want to work with you.
- pekk 14y agoThe story isn't that someone got offended at constructive criticism. For starters, the criticism wasn't constructive or academic, and the criticized thing was just some little tool in a github repo, not an important physics paper, and the reviewers were just assholes, not brilliant assholes. It was just bullying. And this is the story. It's true, of course, that a man would not have this recourse. He's expected to "man up". The legs of this story are that lots of people have this terrible attitude, almost everyone has seen it and it is hurting us a lot.
- 14y ago
- kenneth_reitz 14y agoI'm so tired of this. In honor of harthur's efforts, and to take a stand against bullying, I've decided to fork the project. I'm currently porting it to Python! https://github.com/kennethreitz/replace https://github.com/kennethreitz/replace I encourage others to do the same in their respective languages :)
- cowboyhero 14y agoNice! I posted a similar sentiment here: http://news.ycombinator.com/item?id=5108181 http://news.ycombinator.com/item?id=5108181 Perl or PHP, because why not?
- eric_bullington 14y agoThanks, Kenneth. Actually, I've already forked and used harthur's code several times in the past -- she's written some really cool machine learning stuff for JavaScript that is easy to read. I've used it as the basis for playing around with machine learning in Python and JavaScript, and last year I tried (unsuccessfully, I think) to use d3 to create a nice visualization of her implementation of the k-means algorithm[0]. My visualization turned out poorly (I've had a few suggestions on how to make it better that I need to integrate, and am still open to additional suggestions). However, that obviously had nothing to do with harthur's excellent clusterfck library that I used[1]. Really, when you look over harthur's github contributions, she seems like the ideal open source contributor. She uses permissive licensing, writes clean code (in my opinion), uses unit tests, documents a lot of her code, chooses cool projects, etc. These are features I'm striving to integrate into my own code as I try to transition into programming as a profession instead of just a hobby (and I'm slowly getting there). 0. http://www.ericbullington.com/articles/2012/01/31/kmeans-visualization http://www.ericbullington.com/articles/2012/01/31/kmeans-vis... 1. https://github.com/harthur/clusterfck https://github.com/harthur/clusterfck
- bane 14y agoI've now taken a sudden interest in either forking or writing one of my own as a learning exercise...and also in reading up more on node.js (which I've been ignoring).
- berlinbrown 14y agoBecause of this post I learned a little bit about node.js and may want get into. See how that works. And she has other interesting projects as well.
- skrebbel 14y agoharthur, if it's any help, I immediately `npm install pg replace`'ed. I love your tool's simplicity, for common scenarios, compared to the more common alternatives. Without all this drama, I wouldn't have come across it!
- wolfeidau 14y agoVery disappointed with the people that made these statements, they should know better. Kicking other peoples puppy is never cool, people forget where they started. Some times you have to take this sort of crap on the chin and keep hacking away, the best thing you can do in situations like is just ignore them. I think in this case they have realised how stupid their statements where and are hopefully truly sorry for the hurt they have caused. Also a note to those with many followers, don't be a dick.
- einhverfr 14y agoThere are a few open source projects which I would be willing to ridicule. In general the projects have traction, a significant history, and horrible code which never gets more than marginally better over more than a decade. It is one thing to be starting out. It is something else to decline self-improvement. The problem though is this (and I have been on the receiving end of very harsh criticism of people I respected, some of which was shown correct over time), that there are often problems with critics jumping to conclusions and at the same time not being very detailed. Thus a response like these tweets can only be a "gut reaction" and never really very helpful to anyone. There is no time involved trying to grok the code. There is no opportunity to discuss what potential tradeoffs have been made or why. These two things need to be corrected. I don't think folks should criticize code without trying to work with it and understand the API's. I don't think folks should leave a critique like "that's the old 1990's way of doing things" or "that code sucks." It is much better to get something like "So I see a few problems with the code... and ...." In fact the few times I have gotten the latter (publishing code and getting responses like "I see some important concurrency issues there. This isn't safe to run on production.") I have been happy with the panning because I could fix the problems. But that's a far cry from what the article is referring to and it is, unfortunately a lot less common, IMO.
- zeeg 14y ago(I copied this from another HN posting) I was one of the people who made a comment about this. I'm also assuming the reason I was pulled into this is because people much more important than me said similar things. I'm not going to defend that I think attempting to replace sed/grep is a bad idea (especially not in 140 characters), but I will defend people's opinions. Everyone has one, most of them you won't agree with. Whether they're nice or not. I'm generally not a nice person, at least online, that's my choice. That said, especially with this being the internet, you have to deal with others opinions. While some people may go above and beyond (even myself sometimes) and actually be very mean with their opinion, that doesn't change the fact that they're entitled to it. If you don't like it, ignore it. If you can't ignore it, then you won't survive. The fact that people somehow managed to turn this into the continuous drama debate about gender is just pathetic.
- eropple 14y agoDoubling down on "well, hurr, I'm an asshole and that's what I do" is sick. Act like a decent human being.
- chris_wot 14y ago> While some people may go above and beyond (even myself sometimes) and actually be very mean with their opinion, that doesn't change the fact that they're entitled to it. If you don't like it, ignore it. If you can't ignore it, then you won't survive. In other words, if someone says something nasty, you have no right to say anything about it. Because the nasty person has an opinion, and it's their right. Great logic!
- obstacle1 14y agoIt is an unfortunate fact that this sector of the world has a higher proportion of absolute assholes than other sectors. Egos are extremely fragile, cognitive dissonance is high, arrogance is the norm. I'd say don't let it get to you, but that'd be dishonest. It'll get to you. The thing is you can't stop. That's the hard part.
- lulzy 14y agoWe've all seen stupid code. We've all seen WTF code. We've all seen redundant code. WE ALL MAKE COMMENTS ABOUT IT. WE ALL CHIDE PEOPLE FOR WRITING IT. We all have a good laugh over it. (Does -anyone- remember the way Microsoft platforms were/are treated?) Hell, some people even have twitter feeds about it https://twitter.com/stupidphp https://twitter.com/stupidphp All I can say is this: http://www.youtube.com/watch?v=DozqEUPY5dA http://www.youtube.com/watch?v=DozqEUPY5dA
- jakemcgraw 14y ago"I can’t help but think of potential future employers that are no longer potential." Trust me when I say: this faux intellectual, hipster hacker bullshit, "I liked Ruby before it was cool." represents a tiny, infinitesimal fraction of employers. I'd be shocked if any of these commenters have ever taken the time to release anything of value. I'd also be shocked if any of them was in a position to hire anyone. They're probably too busy performing smug, mental masturbation on HN and trying out their fourth JavaScript MVC framework for a three page vegan bakery shop website for that girl that friend zoned them.
- _pmf_ 14y ago> I can’t help but think of potential future employers that are no longer potential. Remember that this also applies to the potential employers of the people making these remarks. I don't think employers like these kind of toxic comments and sometimes I think Twitter actually has some use for decent people in that it acts as a honeytrap for exposing certain tendencies in not-so-decent people that would otherwise go unnoticed due to the holier-than-thou aura these people create for themselves. "Bro, look at his code! Guys! Guys! Look!"
- jondot 14y agoI wish the guys involved would submit pull requests to amend what they thought was so bad. It has a better educational and apologetic value. It also shows the kind of respect people should get; if you don't like the code you're seeing on Github, improve it and submit a pull request - why not?
- jff 14y agoSubmitting pull requests is for code you actually consider worthwhile/useful. These guys didn't seem to think it even has a reason to exist, so why would they try to improve it? It'd be like saying, "Well, if you don't like my toothbrush for ducks, why don't you tell me how to improve it?"
- jondot 14y agoI meant after they have apologized. Instead of saying 'sorry' in word and that they didn't really mean it, say it in a pull request teaching the person offended something of value. Further, I think they shape of the code was referred to as 'eye bleeding'. Regardless of if you're building something worthwhile, they could have fixed the eye hurting code and explain why that is a more correct way.
- sharjeel 14y agoSteve Jobs' response: "By the way, what have you done that's so great? Do you create anything, or just criticize others work and belittle their motivations?"
- kodablah 14y agoSimilar thing happened to me when I wrote a nodejs abstraction in GWT: https://twitter.com/jdub/status/25537683967180800 https://twitter.com/jdub/status/25537683967180800. Gotta shrug off the haters when it comes to showing projects like this. It is the internet after all.
- suyash 14y ago@Author: Everyone has a right to say and have an opinion. Learn to accept people's reactions and hopefully you will understand why they said what they said. In other words, stop being a pussy!
- hardik988 14y agoI replied to @steveklabnik's tweet saying (https://twitter.com/hardikr/status/293819210965082113 https://twitter.com/hardikr/status/293819210965082113) "There's also a search command. It's like grep, but with replace's syntax, and slower!" Wow - I'm sold! If it was not clear, I was just kidding - and I apologize if my tweet and caused her any sort of distress. I'm just a novice in the open-source world, and I really respect harthur for her contributions to open-source. I was just "smiling" about Javascript's use to replicate grep. In fact, it is my Github everyone should be laughing at - it is filled with small useless scripts, and really terrible code.
- countessa 14y agosucks to be on the receiving end of some nasty/uncivil comments. On the other hand, you are now the person that re-wrote sed. That's pretty awesome.
- jakejake 14y agoIt strikes me as the OP is a new-fangled node.js programmer who unwittingly stepped into shell-script land and felt the judgmental wrath of those who dwell there. This post has a lot of conversation which I take to mean it touched a nerve with a lot of people as it did me. I grew up when computer nerds were not cool and a lot of guys dealt with it by being self-righteous, condescending assholes. I thought those days were behind us now that computer guys and gals are off getting rich and running the world. But clearly the need to feel superior still exists in some communities. It bums me out to see people who otherwise do good work with such a mean-spirited attitude.
- f4stjack 14y agoGithub is not a beauty pageant. We do not write code for the people to evaluate them aesthetically. What we do, however, is to learn and teach. What we did to solve that problem and if there are others, they may use our solution as a step to solving their similar problems or better, they may offer a better solution. What did these tweets add to the so-called "eye bleeding" code? What did they teach? What did we learn from all of these? If I was in Heather's shoes, I would feel anxious whenever I sync to my public repo in Github. Or anxious whenever I code, worry whether this code is "beautiful" enough. And, folks, no one has any right to make a person feel like this. I don't mean "no there shouldn't be any criticism on github" on the contrary, if you have something constructive to say, go ahead and shoot. I would not make a repo public if I don't want to see my mistakes, improvement starts with realizing what a mistake is.
- deleted 14y ago[deleted]
- klibertp 14y agoI just wanted to point out that the code (I know, it's not about the code) here is perfectly fine JavaScript, much, much better than tons of JS I saw in the wild. "eyes bleed"? What the heck? Have these guys never seen truly bad code? And if it's really just about language war... Look, I understand that one can prefer one language over another, but trashing the code someone already written (meaning you won't be forced to write this thing in this language if the need be) is so short-sighted, so closed-minded that I can't find proper words to describe it. I almost refuse to believe that this is the kind of people who are the "stars" of communities - I really thought that to be really good with one language you need to know and respect many others and I thought that being a "star" involves being being good in the language you want to champion. I guess I was just deluded and we're choosing those who yell the loudest as our representatives. Whatever happened to meritocracy?
- webreac 14y agoAt my office, I would be very angry if I encounter your tool. That would mean that the guy who has brought it was too lazy to learn the proper way and makes me waste my time learning how to use a useless tool. Your tool has no advantage over standard unix tools, it is just limited to a reduced number of use cases. This kind of tools does not favour improvement of skills or good practice. I think this is the cause of the strong reactions. On the other hand, your program seems well coded and I may use it when I need to code something similar in javascript. Thank you for open sourcing it. I think you should update your README.md file in order to indicate the proper way of doing things and to discourage the use of it for any other purpose than learning.
- eropple 14y agoI think you should update your README.md file in order to indicate the proper way of doing things and to discourage the use of it for any other purpose than learning. Ack isn't a "standard unix tool" either. I use it all the time. You're being a presumptuous asshole in telling her to discourage the use of it just because you don't like it. I get that you're trying to be nice. You're not succeeding. You're being the problem. Stop.
- webreac 14y agoIn my work I have always to go from one computer to another one (to analyse software problems). Sometimes I need to ask a developer to come on site to give a look to the behaviour of its code. It occurs very often that very good developers are completely lost when they arrive on a computer where all their marvellous customizations and shortcuts are missing. Many developer are always on the same environment. They can use their own tailored tools and may not need many of the basic unix knowledge. I think that good practices should be encouraged. The good practices improve the skill of people and reduce the costs at the society level. The basic knowledge of unix tool has an exponential rewarding effect (by learning a couple of new tips, you can solve many new needs). This tool facilitates the avoidance of these good practices. I do not like people ignorance and I favour knowledge. I do not like losing time (except on HN) and I favour speed. I admit, this is a personal opinion. We do not have much time to learn everything. I think the time spend learning "replace" should better be spend learning "sed". Try to use sed each time it is not longer than opening a text editor and doing a find and replace manually. This way you will not lose your skill. Ack is not a basic tool you have chosen to avoid learning grep. All the basic options of grep are the same in ack. As a result you will not loose skill by using ack.
- meerita 14y agoI never understood such gloating on open source communities. If you can change it for good, why gloat, why complain. There's obviously many reason to rage when you see bad code on commercial and privative stuff, but on open? Dammit, fork it, change it, contribute. It was a bad behavior and people should understand it.
- rytis 14y agoI see absolutely nothing wrong with this approach of writing your own tools. If a person feels that it's better, why ridicule it? Noone is forcing you to use it. If you feel it's not for you, that's fine. On the other hand, some people are advocating this approach as a way to improve your programming skills: http://www.rodrigoalvesvieira.com/copy-unix/ http://www.rodrigoalvesvieira.com/copy-unix/
- simonh 14y agoI have an application I've been working on for about 5 years. I started it as a way to learn desktop and object oriented programming, and it's now grown to something like 10,000 lines of code. There have been long periods of 6 months or more when I've not touched it, then gone back in and get started again, as a result the code base is a bit of a mess. The coding style is a bit haphazard and it includes a fair sprinkling of ugly hacks. But by and large it works and would make a decent alpha release. There are a few bits of functionality that need to be made more robust, which I'm working on now, and when that's done I'm going to bite the bullet and load it into Github. I've implemented a plugin system so users can customize it, and tried to do my best to make that part of it as consistent and clean as possible. I do worry that uploading this thing could cut both ways. I'd like it to get some use, but I'm very aware of it's flaws. I wonder home many projects never get released because the authors are worried about this kind of reaction.
- cslarson 14y agoJust starred your project on github. Thanks for bringing it to my attention.
- r4pha 14y agoNow that's a feature I'd like to see on github: an asshole filter. What really bothers me is that, like me, I'd say a lot of those people learn daily from the work of others on the internet. What about giving something back? What about doing something to add?
- shaurz 14y agoThe Unix weenies strike again.
- shaurz 14y agoAlthough I don't see anything particularly wrong with that script and why people are laughing at it, she needs to be less sensitive and not take it personally. After all, publishing open-source code is a very public act and makes you a very easy target for criticism. Imagine if the Linux kernel devs cried every time Linus went on one of his abusive rants. Not that I'm particularly defending this abusive behaviour, but you have to be realistic and realise that it happens.
- Fuxy 14y agoWhat's all the drama about? So what some famous people criticized your code. Get over it. They may disagree with it for whatever reason ultimately it's you who has to find the tool useful. Please don't whine about it just take it with a grain of salt they could be a million reasons they would say that.
- conradfr 14y agoYou know the Gmail extension that delay your mail, or the one that ask you at 2am if you really want to send that (drunk) text ? They should implement that in Twitter. (note: I avoid Twitter as much as I can)
- gadders 14y agoThose people are arseholes, but sobbing? There's no sobbing in business (to paraphrase Tom Hanks).
- chris_wot 14y agoEven if the tool wasn't as useful as the traditional tool users have liked, I think that the following was an interesting comment: I think that, at least hypothetically, this app won’t be significantly faster written in C than in JavaScript. It’s I/O bound, and in JS regular expressions get JITted to native code (which sed won’t even do!). The real slowdown here with our current JS implementations will be overhead for creating and replacing-in strings. This app actually just gave me a crazy idea for how we could optimize this kind of usage, so I wanted to say thanks! http://harthur.wordpress.com/2011/06/06/replace/#comment-776 http://harthur.wordpress.com/2011/06/06/replace/#comment-776
- davethespider 14y agoI spent a summer once writing a substandard 'ls' command because I liked doing it.
- xmlblog 14y agoI've forked your repository and tried to offer some helpful insights: https://github.com/xmlblog/replace/blob/master/replace.js https://github.com/xmlblog/replace/blob/master/replace.js I hope you find this useful in some small way.
- DannoHung 14y agoWho else here really doesn't enjoy using sed, awk, grep, and xargs? I try to use ack whenever I can avoid grep or find, personally. I wish there were better replacements for the other tools and that they were widely available (possibly as portable libraries).
- vital101 14y agoThis is a lot what it feels like to blog about something technical, and then have someone swoop in and question not just your article, but your parentage and your IQ. It hurts a lot that people can't be constructive with their criticism, but I hope that Heather continues posting open source projects. Haters 'gonna hate, you just can't let them bring you down.
- ricardobeat 14y ago850+ votes, 480+ comments and counting. Who is going to write that easy to use, 'properly written' shell wrapper around find/sed?
- pekk 14y agoThis is a cultural problem. I don't see any reason to believe that this is because she's a she. This kind of horrible arrogant douchebag attitude is just an epidemic. If you are a guy, and especially if you are nobody known, you do not have anything like this recourse.
- dblock 14y agoMaybe it's cultural, but what was ridiculed was the project, not the person. Russians, for example, make a clear distinction between the two, so what the tweets said didn't shock me somehow. I can totally understand how one can take it personally and I definitely think the apologies were necessary. Even though I am Russian, I would certainly apologize profusely if I had offended anybody for whatever reason and would be sincerely sorry.
- mrgoldenbrown 14y agoThe person was ridiculed, FWIW: "...but I don't want to build my app on top of others' code who are at this level of understanding..." is insulting the person, not the project.
- dblock 14y agoI have to disagree, somewhat. It's about the person's skills (or lack thereof), not about the person. An insult to the person would be "you're ugly". I can totally see WHY someone can get offended, and I am not saying it's OK to say those things. But in my culture this would not be a problem because of what I said above.
- Xcelerate 14y agoA tool like "replace" is actually very useful for someone like me. Within the past year I've been learning OS X and the associated Unix environment (coming from a Windows background). At times I wonder how to do find/replace in the command line. So I look at sed. Glance over the man page -- what the heck? Google it; okay's so there's apparently different versions of sed, and OS X has something weird with -i since it's BSD sed instead of GNU sed... and oh look! It uses a different type of regular expressions than I've been using for the past 10 years. And, oh crap, I just accidentally overwrote my file because I typed in the command wrong. The alternative for me is to open the Coffee REPL and get that crap done in seconds. Yeah, I'm slowly picking up the Unix skillset (and Vim is invaluable after finally getting around to learning it), but I think people forget the sheer amount of memorization involved to navigate in a Unix environment.
- robwgibbons 14y agoUghhh linkbait titles. This isn't ridicule for open-sourcing, it's ridicule for BAD CODE
- _pmf_ 14y agoTwitter is a zoo. Tweeting developer "celebrities" are monkeys throwing feces. Let them have their fun; apparently their full-time compulsive Ruby masturbation leaves them enough time for these curious antics. As long as they are not on your team, they are relatively harmless.
- cdibona 14y agoOne nit: I'm not seeing an open source license in the repo. This is what would keep me from using or caring about this code snippet or start caring about how the developer was being treated. Is there one and am I just missing it?
- berlinbrown 14y agoAlso, I think the concept could probably be done with sed and whatever bash scripts. But the code didn't look that bad. It is Javascript after all.
- bane 14y agoIt's astonishing how somebody's earnest hard work, put out in the world for all to see and benefit from, draws so many unmitigated assholes out of the woodwork. Is it jealousy at quickly and elegantly producing something simple and useful? protip: here's how to recognize you made a mistake and humbly apologize http://programmingtour.blogspot.com/2013/01/im-sorry.html http://programmingtour.blogspot.com/2013/01/im-sorry.html Good on Corey. here's how to do the opposite http://justcramer.com/2013/01/24/being-wrong-on-the-internet/ http://justcramer.com/2013/01/24/being-wrong-on-the-internet... http://blog.steveklabnik.com/posts/2013-01-23-node http://blog.steveklabnik.com/posts/2013-01-23-node https://twitter.com/steveklabnik/status/294302391279435776 https://twitter.com/steveklabnik/status/294302391279435776 https://twitter.com/steveklabnik/status/294302539510337536 https://twitter.com/steveklabnik/status/294302539510337536 https://twitter.com/zeeg/status/294307568019464192 https://twitter.com/zeeg/status/294307568019464192
- shizzy0 14y agoNo good deed goes unpunished.
- qwertybob 14y agoSomeone's going to cry over this? I would have thought going through normal ridiculing in middle school and high school would have toughened someone's skin enough. And why are you even paying attention to the great twitter circle-jerk?
- JabavuAdams 14y agoSo, I've felt the same way about uploading my own work-in-progress code to GitHub, but I use it as an antitode to perfectionism / procrastination. It's almost a form of militant pragmatism. I've worked at some quite successful small companies, and they all share the property that you really don't want to examine the code too closely. The sausage is inevitably somewhat disgusting on close examination.
- jezi22 14y agothis is why i am afraid to open source my own personal projects. this fear.
- andyl 14y ago"Then I sob harder. I can’t help but think of potential future employers that are no longer potential." As an employer, I expect there to be criticism associated with a person's code. Criticism isn't a black mark. But sobbing in reaction to criticism? Getting all upset about mild criticism from a-hole strangers on twitter? That's a black mark.
- mosselman 14y agoThis seems like a totally reasonable way to deal with criticism. Also, "I can’t help but think of potential future employers that are no longer potential." because some guy called Steve Klabnik and his wannabe follower Corey Haines who wants to suck up to him say your code sucks? Don't take yourself so seriously please.
- codysoyland 14y agoChris Dickinson's response to this whole ordeal is very much worth the read: https://gist.github.com/02cbd380b7b3b1df62b5 https://gist.github.com/02cbd380b7b3b1df62b5
- mulligan 14y agoIsn't the whole node.js ecosystem subject to this criticism?
- gcv 14y agoNice job, guys. http://www.lolbrary.com/post/35279/gamer-girls/ http://www.lolbrary.com/post/35279/gamer-girls/ headdesk
- Nordichacker 14y agooh my god - people will always throw shit - often for no apparent reason at all. In fact - I would take it as a compliment. If you do great things, and shit come your way, it means you're successful. Don't let it get to you. Ignore it.
- jumby 14y agoSeriously, i dont know what everyone is getting worked up about. Some wannabe smarty pants said something mean on the internets. How is that different than any other day? Steve Klabnik: what exactly is his claim to fame [2]? Lets all mock him for reinventing the wheel with 'pomodoro'. "Messes with your hosts file" and run some crap ruby daemon on :80 so you can't browse the web for some number of minutes? WTF: it's called a proxy people or iptables. Why reinvent the wheel? OHHHH and a big no no here: shelling out to the system. LOL, the irony [1]. I need HIGH PERFORMANCE on everything I do including a local webserver. Gosh. Corey Haines: huh? some software trainer who has written a well known anything? His github is less than inspiring. Some other ruby people: big whoop. Lets see their githubs and then we can all point fingers. [1] https://github.com/steveklabnik/pomodoro/blob/master/lib/pomodoro.rb https://github.com/steveklabnik/pomodoro/blob/master/lib/pom... [2] https://github.com/steveklabnik/bring_back_snowman https://github.com/steveklabnik/bring_back_snowman
- pnathan 14y agoI'm flagging this post, as it adds to the negativity cloud.
- rjempson 14y agoI've followed 2 of those individuals on twitter in the past. Note the tense. I found CH to be particularly tiresome, all show and little substance. Also very much prone to contradictions, he doesn't seem to realize that people remember things. I haven't met him in person, but I imagine he talks quite a lot at a loud volume.
- ripter 14y agoThis guy needs to stop being a pansy and grow some balls. Oh noes! Someone on the internet doesn't like my work! My world is over! What are you, a little girl? Nine, maybe ten years old. I'm seeing pigtails and a frilly skirt. Get over it dude. It's impossible to make everyone happy. haters are going to hate. No need to make a big deal about it.
- rektide 14y agoWhat are you, a little neckbearded basement dweller? There's probably little ten year olds girls ballerinas that could kick your wimpy ass. Just, heads up, it was a girl that got wrecked on, and your comment is offensively sexist and, disregarding the situation, just generally inappropriately so.
- ripter 14y agoI didn't realize it was a girl until after I made the post. We should all feel sorry for her. Women are special creatures that must be protected and sheltered at all costs. How dare some men say anything bad about her. Oh wait, they didn't say anything bad about her. They didn't even say anything bad about her code. They disliked her project. She even said most of the comments where positive. This is nothing more than attention whoring. And you fell for it because she's a girl. If you put something out there, people are going to hate and criticize it. Doesn't matter if you are a boy, girl, or three toed sloth. Just because she's a girl doesn't mean we should pay attention to someone who whines when a few people hate on the project. Nor does it make those haters terrible people. You don't hear Douglas Crockford crying every time someone criticizes him. And you don't get this upset at the developers who do criticize him. It's sexist to treat her different because she's a girl. Everyone is criticized.
- stephengillie 14y agoIf their criticisms aren't constructive, they're wasting your time. Don't let them. Ignore them if that's all they have to say. I don't care if it's your mom or your boss or Jeff Besos or Obama, wasting a person's time is an insult to that person.
- TheEmpath 14y ago1.) Open Source is a meritocracy intentionally designed to counter the never-ending threat of software homogenization that profit motives lure us into embracing, not a soapbox for fleeting quandaries about morality and "social change" (whatever the hell that means for the week). Apples and oranges. Mountains and molehills. 2.) Open Source is not some cool kid's club where people who understand what a semi-colon can do try their hand at avoiding the recession. Even if coders did not make the money they make, THEY WOULD STILL BE CODING BECAUSE IT'S ABOUT TRICKING FUNDAMENTAL PARTICLES INTO DOING MATH FOR YOU. IT'S FUCKING AWESOME SO PUT UP OR SHUT UP. 3.) You code... you put it out there... and you have, literally, -ZERO- idea what is going to happen. People might like it, people might hate it. Now this is the important part to my final point: ---IT IS NOT YOUR PLACE TO CONTROL OR FILTER THOSE RESPONSES--- So you throw some code out there and people don't like it? You get mocked by some asshole? And? What, did you expect civility and ponies and rainbows? What fantasy model of human interaction are you relying on as the core of such assumptions? Nay, sentient being. It is your place to ADAPT to those responses. So... in short.... There is a BLAME option in version control, so point out the flaws in her code or shut up. So there's that. Now as per the frothy mob trying to turn Open Source into some anti-bullying kumbaya because they watch too much Rachel Maddow... There is -not- a SHAME option in version control, so either understand what problem Open Source is trying to solve (promoting software heterogeneity) or go back to the service sector where people are forced to be nice.
- quasque 14y ago"---IT IS NOT YOUR PLACE TO CONTROL OR FILTER THOSE RESPONSES---" One could equally well argue that it's not your place to control or filter criticisms of those responses. You're essentially positing that the majority of people here are out of line for saying "don't be a dick". That seems contradictory to me.
- TheEmpath 14y agoChildish usage of a primitive understanding of dialectics isn't going to deter me. You'll have to do better than that. This is me ADAPTING to your response. Not filtering it out. Not telling you to never again say those big, mean, nasty words to me. Not running the internet to summon white knights to my ever beck and call because I want to win some points that don't matter anywhere. This is me, leading by example, how to ADAPT to your response.
- slohr 14y agoThis topic is so hot in the community it's hard resisting the urge to weigh in. That being said I don't think I can add much to the particular direction the current conversation is going. But given that I gave in to the urge to comment I do want to say this: Good job Heather! Keep up the coding and continue to have fun doing what you're doing. Solve the problems you see fit to be solved. My guess is that you have a pretty good support network and you'll brush this whole thing off soon enough. However the next time you are one key-stroke away from submitting another project to GitHub, and you are given pause due to this whole fiasco, I say charge forward and submit. I look forward to seeing your contribution to the community. Just as I look forward to any contribution from anyone across the globe.
- deltasquared 14y agoI don't understand, not the critics, not the project. Why insult something that someone obviously put a lot of care into? The code is nicely formatted and clear. I can see how it works. Props to harthur for making something easy to read and then sharing it on Github. Both readable code and sharing should be encouraged. I don't really get why someone would want to implement text processing utilities in node.js. It seems to be a bit heavy on the overhead. Might someone re-implement harthur's user interface (which a bunch of people seem to like) in c, and submit it to the GNU Coreutils project?
- davesque 14y agoThis blog makes an extremely good point. The industry we work in is very competitive and it's easy to get into the habit of making snarky comments about other people's code, even if you're actually not a jerk in real life. It's always good to remember that you should avoid doing this as often as possible.
- kschua 14y agoBetter shit code that gets the job done than beautiful code that gets nothing done
- EGreg 14y agoFirst of all, I don't think it matters whether a man or a woman wrote the code. I for one didn't know when I read the link, until I saw this discussion. There are several aspects to this. The obvious one is that anything you put out there is going to get criticisms. Look at Barack Obama being called a socialist muslim atheist, who attended Rev. Wright's church for 20 years. The point is, if you step up, not everyone will like you. Now, being denounced by people who are well-respected and with a big following can hurt. Then again, I doubt it's very permanent. If this is the ONLY thing you've ever done, then you should just do more things. If you are that sensitive about something, don't release it under your own name. Invent a handle just for this project. Kind of like a limited liability company. The art of the pseudonym goes back hundreds of years. Also keep in mind the culture. Unfortunately in my opinion, the coder culture is full of elitist snark against noobs who are too visible. Maybe because it's so male. I have seen far worse reactions to people's code on IRC, especially some assholes in EFNet chatrooms. Freenode seems a bit nicer and well-behaved. But saying ridiculously quirky offensive things in response to code is something coders do to each other all the time. It's just the way many of them speak. I personally don't, and I find it extremely annoying, and I wish it would go away, but it's the reality. Now as far as open source ... I remember releasing what I considered to be a very impressive (at the time) framework, http://phponpie.com http://phponpie.com , and although I got pretty positive responses http://news.ycombinator.com/item?id=1682933 http://news.ycombinator.com/item?id=1682933, and constructive criticism, it didn't really take off. I tried a bit of self-promotion and it didn't pay off either. So to me, releasing open source is kind of a lot like releasing any product ... if people don't really want it, then you're putting in a lot of effort for almost no return. Think about product-market fit in open source, just like anywhere else.
- e4c5shev 14y agoThis just verifies my experience that Corey Haines is a fake. His cult of personality is defined by lots of high-fives, 'that's awesome', 'i am such a positive person' statements. So, he like to pretend he is really positive, nice, friendly... but this event shows that is all fake.
- TheCapn 14y agoAnd we wonder why the programmer geek/nerd/shut-in stereotype or whatever sticks. We fucking step all over eachother as a chance to look better. "Oh, look, someone wrote a helper function that does something I already know how to do." What's the benefit of calling that person out? Seriously. Answer that question before you take to a twitter mob. People through this thread argue whether its worth the time, but if it took Heather one hour to write it, the function paid for itself once she used it for an hour of work that would otherwise be spent crawing man pages. Hell, she says it was written a few years ago. Every piece of code I wrote two/three/four years ago can be looked at and often makes me cringe. You learn in time but that doesn't mean you should vanquish your mistakes. Grow from them, show them proudly as a statement of where you were and where you've come from. Whether you've evolved to a better programmer or not if that single function proved useful to you at one point it means that just one single person out there needed it. Does it make you wrong for not knowing/finding the tools it mimics? Maybe, but without someone beside her in the first place how should she have known. Perhaps taking to twitter with a knife for someone's back is a better start?
- rehack 14y agoOkay, I upvoted this story for the sake of 'missing kindness', in general on the Internet. But after having understood, the whole story. What replace does is that, basically it is a good small utility for the author of the post to replace some content from a lot of files, also recursively going through directories. And the author happened to make it depend on nodejs. In defense of these folks, who made nasty comments: they appeared to have made so, in the context of this nodeJS-based-replace, attempting to replace the sed/awk/grep and unix scripting. To any long time unix user, any quick hack to replace the said commands, does indeed appear to be falling short. And also a bit of a why would you need to do such a thing?. Honestly, they should have been just empathetic enough to understand a non-unix user, hacking a quick utility, with the tools she is familiar with (nodeJS and javascript) to come up with something useful for self and friends. edit: rephrase
- marklittlewood 14y agoXKCD has the answer. http://xkcd.com/1053/ http://xkcd.com/1053/
- egypturnash 14y agoSo here is a thing I've learnt as an artist: never offer unsolicited critique of other people's work. It makes you look like an asshole. If someone WANTS crit, I will ask them if they really, really want it, and give them the caveat that I am probably going to rip them a new one. For my best artist buddies, I don't bother with the preface. They know how to detach themselves from their art. And sometimes, yeah, I come across something so amazingly badly made that it becomes a thing of wonder. When I want to share that, I don't do it in public. I use private, limited channels. Email, private forum, locked Twitter account, whatever. Come to think of it I really tend to just say "holy cow look at this" rather than being super specific. Tearing other people's stuff down in public makes you look like an asshole, period. Especially when you are tearing down the work of people less skilled and/or well-known. It also makes you look pretty insecure.
- akrymski 14y agoThank you Heather! I could never be bothered to remember the commands for the swiss knife that is sed to do something as simple as this. Why I love this: - js syntax for regular expressions is what I'm most familiar with - defaultignore is very helpful - completely cross-platform - can be used directly from my other node projects that need to search and replace files - it's something i'd never be bothered to write because looking up sed syntax takes less time - so thank you for taking the time to do it and open source it! Don't get me wrong - sed's great cause it's so powerful. Bash is powerful too. But I'm not a fan of either. Software should make our lives easier, not force as to learn cryptic commands to get simple things done. Compare "sed --help" to "replace --help". What will the future generation prefer when they need to do a basic search/replace task? The route of least resistance of course. Making simple tasks simple is what real innovation is about. I don't consider myself a poor developer, I know a handful of languages, I'm just not a linux geek because I believe that interfaces should come first. I'm a developer / designer and I love simple and elegant solutions to every-day problems. Your module is exactly that. The reason some "experts" are up in arms is because it challenges the status quo. You no longer need to be a linux wizard to search and replace files. Hell - you don't even need linux. And the simplicity and approach of Node is what makes it possible. As Steve Klabnik said - this is actually their way of showing how much they hate node. And hate is a powerful word for "being afraid". And I'd be too if I dedicated a good chunk of my life to becoming a Ruby expert. "Ever wanted to make sed or grep worse?". Hahaha. I guess Apple I was also worse than the all-powerful mainframes of its day. That's probably exactly what the IBM guys said. Buy a PC that doesn't come with a screen? That does only a fraction of what IBM PCs do? Ever wanted to make an IBM PC worse? :) When the experts are afraid - that's when you know the Node movement is on to something. PS Already almost 400 people have starred your project - I think that's saying something. Would be interesting to know the number of installs :)
- lilsunnybee 14y agoThe criticism is so stupid too. Just because there's another tool out there already that can accomplish the same thing, does that mean no programmer should try to do the same thing again ever? How else do people learn? And if she wants some of her work online to show potential employers or just to share, whats wrong with that? People should just mind their own business, and not be assholes. If you don't like an open source project, make the same thing yourself, and make a post about how it improves on the older one. Don't tear someone down for not being as "smart" as you.