Do or !do. There is no _why.
March 15, 2012 7:08 AM Subscribe
"Vitamin R goes straight to the head. Ruby will teach you to express your ideas through a computer. You will be writing stories for a machine. The language will become a tool for you to better connect your mind to the world." Slate compiles the mystery of _why. (Previously).
How incredibly disrespectful of _why's decision.
posted by dmd at 7:28 AM on March 15, 2012 [6 favorites]
posted by dmd at 7:28 AM on March 15, 2012 [6 favorites]
As much as I loathe Zed Shaw's 'internet tough guy' personality, he is correct that _why's deletion of his code repositories and projects (without prior warning and while active projects were based on it) was a total asshole move.
posted by PenDevil at 7:29 AM on March 15, 2012 [16 favorites]
posted by PenDevil at 7:29 AM on March 15, 2012 [16 favorites]
For those who just want to know if he found Why, read the last couple paragraphs.
posted by michaelh at 7:30 AM on March 15, 2012
posted by michaelh at 7:30 AM on March 15, 2012
A hot off the presses, sizzling discovery from three years ago! Regardless, a historical compilation of an event before all the individual parts and context fade away is always welcome.
posted by jscott at 7:37 AM on March 15, 2012
posted by jscott at 7:37 AM on March 15, 2012
How incredibly disrespectful of _why's decision.
The article? I think there are a couple schools of thought there. Programming isn't an art like sculpting, where you can churn something out in marble and walk away. To be meaningful, code requires a community to give it to: users to run a program, other coders to take a library and implement it instead of re-inventing it. If there is no (regular) art without chaos, there's no art to coding without an audience. I can understand _why's Garbo-like desire to be left alone, but there was no need to take his toys with him, unless, as the article suggests, he was The Wizard of Oz and didn't want anyone to see behind the curtain.
There's nothing wrong with being a mediocre coder. The vast majority of us are; it's the tyranny of math. But _why was an amazing teacher. I respect his decision to only spend an hour strutting and fretting on the stage, but I don't like that he took the text of the play with him.
posted by yerfatma at 7:39 AM on March 15, 2012 [3 favorites]
The article? I think there are a couple schools of thought there. Programming isn't an art like sculpting, where you can churn something out in marble and walk away. To be meaningful, code requires a community to give it to: users to run a program, other coders to take a library and implement it instead of re-inventing it. If there is no (regular) art without chaos, there's no art to coding without an audience. I can understand _why's Garbo-like desire to be left alone, but there was no need to take his toys with him, unless, as the article suggests, he was The Wizard of Oz and didn't want anyone to see behind the curtain.
There's nothing wrong with being a mediocre coder. The vast majority of us are; it's the tyranny of math. But _why was an amazing teacher. I respect his decision to only spend an hour strutting and fretting on the stage, but I don't like that he took the text of the play with him.
posted by yerfatma at 7:39 AM on March 15, 2012 [3 favorites]
_why chose to become a celebrity, by authoring books and giving lectures at symposia. At that point, he lost his bid to be forgotten forever upon a change of his whims.
The world is harsh like that.
posted by IAmBroom at 8:15 AM on March 15, 2012 [2 favorites]
The world is harsh like that.
posted by IAmBroom at 8:15 AM on March 15, 2012 [2 favorites]
at the major risk of being a cranky jerk, two things here bug the crap out of me:
- “Don’t worry about it,” one of my new Ruby friends said. “All programming is pastiche :)”
If you only cut/paste, you're doing cargo-cult programming. That isn't engineering.
- Someone still has to write the libraries (real object code) that allows greater access to the masses.
Sure, ruby is fancy, sexy, hot, but it is so abstracted away from the underlying way things work, and someone still has to do those underpinnings.
posted by k5.user at 8:29 AM on March 15, 2012 [1 favorite]
- “Don’t worry about it,” one of my new Ruby friends said. “All programming is pastiche :)”
If you only cut/paste, you're doing cargo-cult programming. That isn't engineering.
- Someone still has to write the libraries (real object code) that allows greater access to the masses.
Sure, ruby is fancy, sexy, hot, but it is so abstracted away from the underlying way things work, and someone still has to do those underpinnings.
posted by k5.user at 8:29 AM on March 15, 2012 [1 favorite]
!do throws an error because do is a reserved word, by the way.
posted by michaelh at 8:33 AM on March 15, 2012
posted by michaelh at 8:33 AM on March 15, 2012
Nah, he's right. No matter what language you use, idioms are not always translatable to a library function. It's why design patterns exist, for example - very few of the existing patterns are things you can just throw in a library for others to use. Or going out on a limb a bit, you can have a pretty good handle on all of C and it's standard library and still be surprised and enlightened when you first come across Duff's device. Borrowing ideas and idioms is common enough even if you're not directly copying code.
posted by vanar sena at 8:35 AM on March 15, 2012 [1 favorite]
posted by vanar sena at 8:35 AM on March 15, 2012 [1 favorite]
yay apostrophe fail.
posted by vanar sena at 8:37 AM on March 15, 2012
posted by vanar sena at 8:37 AM on March 15, 2012
"Sure, ruby is fancy, sexy, hot, but it is so abstracted away from the underlying way things work, and someone still has to do those underpinnings."
That is the point. A few people do the underpinnings and abstract them away into a simpler interface. Everyone else benefits from their work. Each abstraction layer makes it possible to develop larger systems at the cost of performance and detail.
posted by scose at 8:42 AM on March 15, 2012 [2 favorites]
That is the point. A few people do the underpinnings and abstract them away into a simpler interface. Everyone else benefits from their work. Each abstraction layer makes it possible to develop larger systems at the cost of performance and detail.
posted by scose at 8:42 AM on March 15, 2012 [2 favorites]
Thanks, _why, for all the funny, inventive, and inspiring things you've given us. I hope you're having a lot of fun, whatever you're doing.
posted by Songdog at 8:59 AM on March 15, 2012 [2 favorites]
posted by Songdog at 8:59 AM on March 15, 2012 [2 favorites]
_why does the illustration of him look like Douglas Reynholm from the IT Crowd...?
posted by melissam at 8:59 AM on March 15, 2012 [3 favorites]
posted by melissam at 8:59 AM on March 15, 2012 [3 favorites]
Third, Rubyists possess an often exaggerated, yet nevertheless merited, reputation for being the quirky hug-everyone kids of the programming world.
Wait, I thought they possessed an often exaggerated yet (perhaps?) nevertheless merited reputation for being misogynistic fuckholes.
I'm actually not entirely snarking here. I'm a casual programmer at best, and not part of the Ruby crowd, so all I know about that bunch of people comes from the stereotypes that are floating around online — but this is seriously not the stereotype I'm used to hearing.
posted by nebulawindphone at 9:00 AM on March 15, 2012 [8 favorites]
Wait, I thought they possessed an often exaggerated yet (perhaps?) nevertheless merited reputation for being misogynistic fuckholes.
I'm actually not entirely snarking here. I'm a casual programmer at best, and not part of the Ruby crowd, so all I know about that bunch of people comes from the stereotypes that are floating around online — but this is seriously not the stereotype I'm used to hearing.
posted by nebulawindphone at 9:00 AM on March 15, 2012 [8 favorites]
I'm actually not entirely snarking here. I'm a casual programmer at best, and not part of the Ruby crowd, so all I know about that bunch of people comes from the stereotypes that are floating around online — but this is seriously not the stereotype I'm used to hearing.
It sounds like the author dove into the Ruby community, and often a community's self-image is different than its external perception.
posted by verb at 9:14 AM on March 15, 2012
It sounds like the author dove into the Ruby community, and often a community's self-image is different than its external perception.
posted by verb at 9:14 AM on March 15, 2012
Shortly before his disappearance, _why ... tweeted: “programming is rather thankless. u see your works become replaced by superior ones in a year. unable to run at all in a few more.”
The take-away line. Code may be beautiful (if you can find someone who groks it), but in the end its purpose is to do something beautiful with data. (Also - when CPU's were 2000x slower - to do it in reasonable time.)
Languages, CPUs and OS's come and go all the time. Beautiful data - the stuff everyone can appreciate - will last a lot longer. Other artists may appreciate your skills, but they're not why the Mona Lisa or the Taj Mahal are forever. Losing sight of that leads programmers into what Pirsig called a gumption trap. It's not about the code.
posted by Twang at 9:32 AM on March 15, 2012 [4 favorites]
The take-away line. Code may be beautiful (if you can find someone who groks it), but in the end its purpose is to do something beautiful with data. (Also - when CPU's were 2000x slower - to do it in reasonable time.)
Languages, CPUs and OS's come and go all the time. Beautiful data - the stuff everyone can appreciate - will last a lot longer. Other artists may appreciate your skills, but they're not why the Mona Lisa or the Taj Mahal are forever. Losing sight of that leads programmers into what Pirsig called a gumption trap. It's not about the code.
posted by Twang at 9:32 AM on March 15, 2012 [4 favorites]
I guess it's still a mystery to me why _why was so mysterious in the first place.
posted by dhartung at 9:46 AM on March 15, 2012
posted by dhartung at 9:46 AM on March 15, 2012
even though both Ruby and Rails have notoriously steep learning curves.
Really? I think it's more that they're different. To me, Python and Ruby are easy to learn, but if you're used to the C brackets paradigm, the reliance on lists and mapping and meta-programming can seem overwhelming.
posted by yerfatma at 9:58 AM on March 15, 2012
Really? I think it's more that they're different. To me, Python and Ruby are easy to learn, but if you're used to the C brackets paradigm, the reliance on lists and mapping and meta-programming can seem overwhelming.
posted by yerfatma at 9:58 AM on March 15, 2012
I thought the article did a pretty good job describing the Ruby community and how it felt when _why disappeared, in a way that speaks to both people who were active (or activ-ish, like me) in the community as well as those who weren't.
Putting aside the risk of a derail, the most disheartening thing about this article is how many people are using "he" to refer to Annie Lowrey, the author of the slate piece.
posted by cuetip at 10:01 AM on March 15, 2012 [14 favorites]
Putting aside the risk of a derail, the most disheartening thing about this article is how many people are using "he" to refer to Annie Lowrey, the author of the slate piece.
posted by cuetip at 10:01 AM on March 15, 2012 [14 favorites]
I'm glad he's okay.
posted by en forme de poire at 10:01 AM on March 15, 2012 [6 favorites]
posted by en forme de poire at 10:01 AM on March 15, 2012 [6 favorites]
The thing about rails is that it does make web development ridiculously easier than the alternatives -- once you've learned it and accepted all of the inbuilt strongly held opinions; one of which is that all web development should at a minimum be done very seriously and at a medium-to-high complexity level.
So for example, it's presumed just innately that your project will have css and js so complex that you will need special tools to handle their complexity; and those tools are default.
A lot of people stumble into that world and get lost immediately in the bewildering array of default tools and settings that rails provides, and wander drunkenly away holding their head and saying 'man, I heard that was supposed to be easy.'
For those people, I strongly recommend sinatra as the web framework and sequel as the ORM if your problem is tractable in or requires relational databases.
Here's a complete Sinatra app:
$ gem install sinatra
$ cat > myapp.rb
require 'sinatra'
get '/' { "hello world!" }
$ ruby myapp.rb
You can start infinitely small with Sinatra and get as heavyweight as you like, which is a bit more of a unixy way to approach development than the rails model in my considered opinion.
posted by felix at 10:03 AM on March 15, 2012 [6 favorites]
So for example, it's presumed just innately that your project will have css and js so complex that you will need special tools to handle their complexity; and those tools are default.
A lot of people stumble into that world and get lost immediately in the bewildering array of default tools and settings that rails provides, and wander drunkenly away holding their head and saying 'man, I heard that was supposed to be easy.'
For those people, I strongly recommend sinatra as the web framework and sequel as the ORM if your problem is tractable in or requires relational databases.
Here's a complete Sinatra app:
$ gem install sinatra
$ cat > myapp.rb
require 'sinatra'
get '/' { "hello world!" }
$ ruby myapp.rb
You can start infinitely small with Sinatra and get as heavyweight as you like, which is a bit more of a unixy way to approach development than the rails model in my considered opinion.
posted by felix at 10:03 AM on March 15, 2012 [6 favorites]
I'm glad he's okay.
Me, too. The rest of it is his own business, and he doesn't owe anyone anything.
posted by Blazecock Pileon at 10:09 AM on March 15, 2012 [2 favorites]
Me, too. The rest of it is his own business, and he doesn't owe anyone anything.
posted by Blazecock Pileon at 10:09 AM on March 15, 2012 [2 favorites]
Twang: "(Also - when CPU's were 2000x slower - to do it in reasonable time.)"
In real time audio processing, if you cannot complete your calculations on every input sample within 0.05 seconds, nobody will use your tool. And this has to be your absolute worst case performance, because timing is literally everything and even one glitch can ruin a live performance. I am talking about "don't call malloc or printf because they are slow" here. I am sure that is not the only exception to the new "reasonable time" rules.
posted by idiopath at 10:20 AM on March 15, 2012 [4 favorites]
In real time audio processing, if you cannot complete your calculations on every input sample within 0.05 seconds, nobody will use your tool. And this has to be your absolute worst case performance, because timing is literally everything and even one glitch can ruin a live performance. I am talking about "don't call malloc or printf because they are slow" here. I am sure that is not the only exception to the new "reasonable time" rules.
posted by idiopath at 10:20 AM on March 15, 2012 [4 favorites]
dhartung: I guess it's still a mystery to me why _why was so mysterious in the first place.
In a world of geeks who discovered a path to fame and popularity, _why still took the quirky path of hiding his steps to & fro his "real life", thus restricting his fame entirely to the professional (i.e., online) world.
There's many a Hollywood star wishes they had that option, and that foresight.
posted by IAmBroom at 10:24 AM on March 15, 2012 [1 favorite]
In a world of geeks who discovered a path to fame and popularity, _why still took the quirky path of hiding his steps to & fro his "real life", thus restricting his fame entirely to the professional (i.e., online) world.
There's many a Hollywood star wishes they had that option, and that foresight.
posted by IAmBroom at 10:24 AM on March 15, 2012 [1 favorite]
In a world of geeks who discovered a path to fame and popularity, _why still took the quirky path of hiding his steps to & fro his "real life", thus restricting his fame entirely to the professional (i.e., online) world.
This is part of it.
I find _why mysterious because to me what's happening in my magic box is magic. _why, and all you programmers here on metafilter, are wizards. You people are magic, making the 1's and 0's bend to your will.
I've joined your ranks as programmer and I'm learning in Ruby. (I can write methods now!)
It was solely _why that made me decided to take up programming. After just a few minutes in Hackety Hack* I was actually programming. I was making the turtle draw pictures. I made a little guessing game. I hadn't done that since jr. high. It was a rush.
I tried to read _why's guide. It is a mess. It's cool but people who know nothing about programming will find it confusing. A better starting is 'Try Ruby', Hackety Hack or better, Chris Pine's Learn to Program.
_why's guide is more a conceptual art piece than an actual primer.
It's a bummer _why disappeared and I'm glad he's OK. His inspiration made it feel like I could really become a programmer. Lately, my life has become somewhat uncontrollable. So it's nice to sit down at the terminal and learn to control my computer.
*credit where credit is due, I think a guy named Steve was the curator of HH when I started using it. _why had abandoned a while before that. Not really sure what version I was using.
posted by hot_monster at 10:48 AM on March 15, 2012 [6 favorites]
This is part of it.
I find _why mysterious because to me what's happening in my magic box is magic. _why, and all you programmers here on metafilter, are wizards. You people are magic, making the 1's and 0's bend to your will.
I've joined your ranks as programmer and I'm learning in Ruby. (I can write methods now!)
It was solely _why that made me decided to take up programming. After just a few minutes in Hackety Hack* I was actually programming. I was making the turtle draw pictures. I made a little guessing game. I hadn't done that since jr. high. It was a rush.
I tried to read _why's guide. It is a mess. It's cool but people who know nothing about programming will find it confusing. A better starting is 'Try Ruby', Hackety Hack or better, Chris Pine's Learn to Program.
_why's guide is more a conceptual art piece than an actual primer.
It's a bummer _why disappeared and I'm glad he's OK. His inspiration made it feel like I could really become a programmer. Lately, my life has become somewhat uncontrollable. So it's nice to sit down at the terminal and learn to control my computer.
*credit where credit is due, I think a guy named Steve was the curator of HH when I started using it. _why had abandoned a while before that. Not really sure what version I was using.
posted by hot_monster at 10:48 AM on March 15, 2012 [6 favorites]
Duh, Steve Klabnik. Is this why I should RTFA?
posted by hot_monster at 10:51 AM on March 15, 2012 [1 favorite]
posted by hot_monster at 10:51 AM on March 15, 2012 [1 favorite]
idiopath: Someone at Nvidia said that "as computers get more powerful, it's more important that we write good algorithms." It sounds counterintuitive - our faster machine should let us get away with writing slower code. But we use the more capable machine to tackle a larger problem size, so the asymptotic behavior of our algorithm outweighs any constant factors. Stuff like Duff's Device only improves the constant factors and becomes unnecessary. But we will always have to use efficient algorithms.
posted by scose at 11:03 AM on March 15, 2012 [4 favorites]
posted by scose at 11:03 AM on March 15, 2012 [4 favorites]
But we use the more capable machine to tackle a larger problem size, so the asymptotic behavior of our algorithm outweighs any constant factors.
In some fields, like systems biology, we need to use better algorithms because we're simply crunching ever greater amounts of data. Better algorithms can also mean thinking about parallelization, which is where the state of the art is at the present time. I was at a seminar last week on building gene expression networks, which can have an O(n^3) construction cost. Even with the computing power available today, this makes some of today's research problems intractable. But along with a parallelized approach that splits the problem into smaller chunks, a mathematical simplification makes formerly intractable estimations calcuable and allows deeper and broader research questions to be answered.
posted by Blazecock Pileon at 11:18 AM on March 15, 2012 [1 favorite]
In some fields, like systems biology, we need to use better algorithms because we're simply crunching ever greater amounts of data. Better algorithms can also mean thinking about parallelization, which is where the state of the art is at the present time. I was at a seminar last week on building gene expression networks, which can have an O(n^3) construction cost. Even with the computing power available today, this makes some of today's research problems intractable. But along with a parallelized approach that splits the problem into smaller chunks, a mathematical simplification makes formerly intractable estimations calcuable and allows deeper and broader research questions to be answered.
posted by Blazecock Pileon at 11:18 AM on March 15, 2012 [1 favorite]
Contributing code, evangelizing a language, writing books and guides are hobbies that can quickly turn into a full time job. A thankless, no pay job in which you are now stuck because some jackass used your code and you now have to provide support. At least with a real job you could walk in one day and say "fuck it, I'm out" and they will never call you again. Release one peice of code and people will be contacting you for free programming help till the day you die. Some people understandably get fed up. It would have been nice if _why could have found new maintainers but it isn't like he scoured the earth and deleted every copy of his code. Thousands of people had it, and could put it back online or get it tattooed on their arm or whatever the hell else they felt like doing with it.
posted by Ad hominem at 11:20 AM on March 15, 2012 [6 favorites]
posted by Ad hominem at 11:20 AM on March 15, 2012 [6 favorites]
scose: "Someone at Nvidia said that "as computers get more powerful, it's more important that we write good algorithms.""
My personal take is that the best solution to computer as real time audio processor is to start with a kernel optimized for latency rather than throughput. And then an OS with system libraries optimized for latency. Both latency and throughput are perfectly respectable goals in their own domains, but an algorithm that is best for throughput can often be very bad for latency. For low latency, anything with an extreme worst case is right out. You need to optimize for worst case rather than average case.
In other words, it isn't enough to use a *good* algorithm, sometimes it is more important to use an appropriate one. A hash table is a much better, more sophisticated data structure for storing and looking up data than a linked list, but if you are processing audio in real time, you may want to ditch the hash table and use a linked list, since appending and deleting in linked lists is always linear*.
Something like ruby is reportedly great for things like web pages where increased load can be offloaded to a second CPU and latency is less important, if nothing else due to the built in lag time of the web. And they even use something remarkably like ruby in design and performance as the programmable side of SuperCollider. But you the part of SC that processes audio and the part that the user interacts with and programs are totally separate, and can even run on different computers over a network. The programmable part is optimized for end-developer (the computational audio version of prosumer) time and comprehension. The part which processes and generates audio is optimized for latency.
* linear, presuming the data cells are already allocated from the OS, or the OS guarantees a maximum worst case behavior for memory allocation. Also this is a made up example, maybe a better solution is a preallocated hash table that is not allowed to grow in size, the point is that in this domain worst case performance is priority 1, and the final qualifier for what a "good algorithm" is.
posted by idiopath at 11:31 AM on March 15, 2012 [1 favorite]
My personal take is that the best solution to computer as real time audio processor is to start with a kernel optimized for latency rather than throughput. And then an OS with system libraries optimized for latency. Both latency and throughput are perfectly respectable goals in their own domains, but an algorithm that is best for throughput can often be very bad for latency. For low latency, anything with an extreme worst case is right out. You need to optimize for worst case rather than average case.
In other words, it isn't enough to use a *good* algorithm, sometimes it is more important to use an appropriate one. A hash table is a much better, more sophisticated data structure for storing and looking up data than a linked list, but if you are processing audio in real time, you may want to ditch the hash table and use a linked list, since appending and deleting in linked lists is always linear*.
Something like ruby is reportedly great for things like web pages where increased load can be offloaded to a second CPU and latency is less important, if nothing else due to the built in lag time of the web. And they even use something remarkably like ruby in design and performance as the programmable side of SuperCollider. But you the part of SC that processes audio and the part that the user interacts with and programs are totally separate, and can even run on different computers over a network. The programmable part is optimized for end-developer (the computational audio version of prosumer) time and comprehension. The part which processes and generates audio is optimized for latency.
* linear, presuming the data cells are already allocated from the OS, or the OS guarantees a maximum worst case behavior for memory allocation. Also this is a made up example, maybe a better solution is a preallocated hash table that is not allowed to grow in size, the point is that in this domain worst case performance is priority 1, and the final qualifier for what a "good algorithm" is.
posted by idiopath at 11:31 AM on March 15, 2012 [1 favorite]
Ad hominem: "ou are now stuck because some jackass used your code and you now have to provide support."
Yeah it's no surprise to me that guys like _why quit, unusual drama aside. Enjoying programming is hardly the same thing as being part of a development community or a project manager, yet giving software away seems to obligate people to do both those things.
I once wrote a documentation generator after trying and failing to modify an existing one. I wrote the maintainers of the original for help and never heard back. Being young and foolish (yes one of these is still true), I mentioned this on my project website.
Some years later the inevitable burnout happened and I lost interest in supporting the thing. A college-age youngster walks up to me at a conference and says, "You know how you mention that you wrote the authors of that other tool and they didn't reply? Well, you did the same thing to me." I was now Those Guys, and I regret being such an asshole about it to them. They didn't owe me a thing.
I should have replied to the email though.
posted by vanar sena at 11:34 AM on March 15, 2012 [4 favorites]
Yeah it's no surprise to me that guys like _why quit, unusual drama aside. Enjoying programming is hardly the same thing as being part of a development community or a project manager, yet giving software away seems to obligate people to do both those things.
I once wrote a documentation generator after trying and failing to modify an existing one. I wrote the maintainers of the original for help and never heard back. Being young and foolish (yes one of these is still true), I mentioned this on my project website.
Some years later the inevitable burnout happened and I lost interest in supporting the thing. A college-age youngster walks up to me at a conference and says, "You know how you mention that you wrote the authors of that other tool and they didn't reply? Well, you did the same thing to me." I was now Those Guys, and I regret being such an asshole about it to them. They didn't owe me a thing.
I should have replied to the email though.
posted by vanar sena at 11:34 AM on March 15, 2012 [4 favorites]
Next they need to do Mark Pilgrim
Love the dude's work, but I feel like that would be 100x more dangerous. Like you might track down _why at a quiet bar somewhere in the US, but Pilgrim you might find Kurtz-like in the jungle.
posted by yerfatma at 11:49 AM on March 15, 2012 [4 favorites]
Love the dude's work, but I feel like that would be 100x more dangerous. Like you might track down _why at a quiet bar somewhere in the US, but Pilgrim you might find Kurtz-like in the jungle.
posted by yerfatma at 11:49 AM on March 15, 2012 [4 favorites]
like like like like. Jesus, sorry.
posted by yerfatma at 11:50 AM on March 15, 2012 [1 favorite]
posted by yerfatma at 11:50 AM on March 15, 2012 [1 favorite]
I'm so glad he's okay.
posted by Tesseractive at 11:50 AM on March 15, 2012
posted by Tesseractive at 11:50 AM on March 15, 2012
The thing with open source contribution is that you are either:
a) being paid for support and are thus free to quit your job and not offer support
b) not being paid, and fully within your rights to ignore requests for help from people who are already benefiting from your unpaid work
posted by idiopath at 11:51 AM on March 15, 2012
a) being paid for support and are thus free to quit your job and not offer support
b) not being paid, and fully within your rights to ignore requests for help from people who are already benefiting from your unpaid work
posted by idiopath at 11:51 AM on March 15, 2012
I bet there are people who go to soup kitchens, go up to the counter, and loudly complain that someone got their order wrong.
posted by idiopath at 11:53 AM on March 15, 2012 [2 favorites]
posted by idiopath at 11:53 AM on March 15, 2012 [2 favorites]
The thing with open source contribution is that you are either:
a) being paid for support and are thus free to quit your job and not offer support
b) not being paid, and fully within your rights to ignore requests for help from people who are already benefiting from your unpaid work
In some communities, there's a strange dynamic that can emerge, though, that complicate things. When there are certain problems that need solving (say, configuration management or solving certain authentication problems in a reusable fashion, etc), eager but uncommitted people can launch a promising project that gets peoples' attention, and discourages other participants from duplicating the work in a separate project.
It's a little like namesquatting a catchy domain; people can get very frustrated, in part because it can stall progress on certain things valued by the community. It's not insurmountable, but in projects with a strong community component, it leads to a bit of "Don't step up to the plate unless you really want to play the full game" vibe.
posted by verb at 12:11 PM on March 15, 2012 [2 favorites]
a) being paid for support and are thus free to quit your job and not offer support
b) not being paid, and fully within your rights to ignore requests for help from people who are already benefiting from your unpaid work
In some communities, there's a strange dynamic that can emerge, though, that complicate things. When there are certain problems that need solving (say, configuration management or solving certain authentication problems in a reusable fashion, etc), eager but uncommitted people can launch a promising project that gets peoples' attention, and discourages other participants from duplicating the work in a separate project.
It's a little like namesquatting a catchy domain; people can get very frustrated, in part because it can stall progress on certain things valued by the community. It's not insurmountable, but in projects with a strong community component, it leads to a bit of "Don't step up to the plate unless you really want to play the full game" vibe.
posted by verb at 12:11 PM on March 15, 2012 [2 favorites]
I saw _why's presentation ot OSCON. I admire his goals, but his whole twee thing was insurmountably annoying to me.
It's like RadioLab. +10 for concept, -100 for execution.
posted by mrnutty at 12:13 PM on March 15, 2012
It's like RadioLab. +10 for concept, -100 for execution.
posted by mrnutty at 12:13 PM on March 15, 2012
How incredibly disrespectful of _why's decision.
"No," said the little prince. "I am looking for friends. What does that mean--'tame'?"
"It is an act too often neglected," said the fox. It means to establish ties."
"'To establish ties'?"
"Just that," said the fox. "To me, you are still nothing more than a little boy who is just like a hundred thousand other little boys. And I have no need of you. And you, on your part, have no need of me. To you, I am nothing more than a fox like a hundred thousand other foxes. But if you tame me, then we shall need each other. To me, you will be unique in all the world. To you, I shall be unique in all the world . . ."
[...]
And he went back to meet the fox.
"Goodbye," he said.
"Goodbye," said the fox. "And now here is my secret, a very simple secret: It is only with the heart that one can see rightly; what is essential is invisible to the eye."
"What is essential is invisible to the eye," the little prince repeated, so that he would be sure to remember.
"It is the time you have wasted for your rose that makes your rose so important."
"It is the time I have wasted for my rose--" said the little prince, so that he would be sure to remember.
"Men have forgotten this truth," said the fox. "But you must not forget it. You become responsible, forever, for what you have tamed. [...]"
- Antoine de Saint-Exupéry, The Little Prince
(It's a bit long and discursive, but in a post about _why that's entirely in keeping with the subject. And it has a talking fox. This is my response to people who think they can suddenly cut off other people, and tie off parts of their life with cord and let them atrophy and fall off from gangrene. Anyway, regardless of other factors, you do not suddenly and without explanation pull open source software projects out from other people who depend on it. The point of open source is to prevent people from using copyright to make dick moves like that.
Appropo of nothing, I've always loved the name "Trady Blix.")
posted by JHarris at 2:07 PM on March 15, 2012 [8 favorites]
"No," said the little prince. "I am looking for friends. What does that mean--'tame'?"
"It is an act too often neglected," said the fox. It means to establish ties."
"'To establish ties'?"
"Just that," said the fox. "To me, you are still nothing more than a little boy who is just like a hundred thousand other little boys. And I have no need of you. And you, on your part, have no need of me. To you, I am nothing more than a fox like a hundred thousand other foxes. But if you tame me, then we shall need each other. To me, you will be unique in all the world. To you, I shall be unique in all the world . . ."
[...]
And he went back to meet the fox.
"Goodbye," he said.
"Goodbye," said the fox. "And now here is my secret, a very simple secret: It is only with the heart that one can see rightly; what is essential is invisible to the eye."
"What is essential is invisible to the eye," the little prince repeated, so that he would be sure to remember.
"It is the time you have wasted for your rose that makes your rose so important."
"It is the time I have wasted for my rose--" said the little prince, so that he would be sure to remember.
"Men have forgotten this truth," said the fox. "But you must not forget it. You become responsible, forever, for what you have tamed. [...]"
- Antoine de Saint-Exupéry, The Little Prince
(It's a bit long and discursive, but in a post about _why that's entirely in keeping with the subject. And it has a talking fox. This is my response to people who think they can suddenly cut off other people, and tie off parts of their life with cord and let them atrophy and fall off from gangrene. Anyway, regardless of other factors, you do not suddenly and without explanation pull open source software projects out from other people who depend on it. The point of open source is to prevent people from using copyright to make dick moves like that.
Appropo of nothing, I've always loved the name "Trady Blix.")
posted by JHarris at 2:07 PM on March 15, 2012 [8 favorites]
Also:
scose: "Someone at Nvidia said that "as computers get more powerful, it's more important that we write good algorithms.""
Did he finish that off with "And then it's important to lock those algorithms up with IP law and force people to sign NDAs before we tell them how to interface with them?"
posted by JHarris at 2:13 PM on March 15, 2012 [2 favorites]
scose: "Someone at Nvidia said that "as computers get more powerful, it's more important that we write good algorithms.""
Did he finish that off with "And then it's important to lock those algorithms up with IP law and force people to sign NDAs before we tell them how to interface with them?"
posted by JHarris at 2:13 PM on March 15, 2012 [2 favorites]
[...] even though both Ruby and Rails have notoriously steep learning curves.
I can't speak for Rails, but Ruby having a notoriously steep learning curve? Compared to what, Python?
posted by JHarris at 2:15 PM on March 15, 2012
I can't speak for Rails, but Ruby having a notoriously steep learning curve? Compared to what, Python?
posted by JHarris at 2:15 PM on March 15, 2012
If anyone's looking to learn rails, Michael Hartl's guide is pretty good, and covers a fair amount of Ruby. I don't know if its useful for people with zero programming experience, but it was enough to teach me (and re-teach me a few months later, after I forgot all of it and everything changed.)
posted by modernserf at 2:29 PM on March 15, 2012 [1 favorite]
posted by modernserf at 2:29 PM on March 15, 2012 [1 favorite]
On a similar note, I recently discovered kojo which uses Scala and turtle graphics ala logo to teach math concepts.
posted by CBrachyrhynchos at 3:12 PM on March 15, 2012
posted by CBrachyrhynchos at 3:12 PM on March 15, 2012
PenDevil wrote:
The Ruby community wants to believe in the myth of _why; that he was some epic hacker, permanently on the move, delivering code from a flying airship over the Pacific. Any details about this person's real life and what he actually does to put food on his table would only spoil that myth.
So in that sense, the sudden disappearance of _why was a great thing for the Ruby community. At allows the myth to live on forever.
posted by i_have_a_computer at 3:30 PM on March 15, 2012
As much as I loathe Zed Shaw's 'internet tough guy' personality, he is correct that _why's deletion of his code repositories and projects (without prior warning and while active projects were based on it) was a total asshole move.Some jerk went to extraordinary lengths to stalk the person behind _why. That's much more of an asshole move, and if I were in _why's shoes I would have been very angry and I too would have pulled the plug.
The Ruby community wants to believe in the myth of _why; that he was some epic hacker, permanently on the move, delivering code from a flying airship over the Pacific. Any details about this person's real life and what he actually does to put food on his table would only spoil that myth.
So in that sense, the sudden disappearance of _why was a great thing for the Ruby community. At allows the myth to live on forever.
posted by i_have_a_computer at 3:30 PM on March 15, 2012
I'm learning to program right this second using ruby and rails. Can't agree with the idea that there's a steep learning curve - I've no prior experience but in six months I've written a functional bug tracker app from scratch as well as a git workflow/deploy automator script and countless patches/tests/methods/etc. This isn't because I'm a good programmer but because in those six months I've been able to learn a huge amount from the fantastic ruby community, of which _why was/is a huge part. His work showed me how programming could be a creative expression as well as a functional tool, for which I am genuinely grateful.
And good on him for disappearing too. All his stuff is still available, he can go back to enjoying his life, and I'm not sure exactly who is supposed to be losing out here. I do wish the journalist had respected his wish for privacy though...my heart sinks at the prospect of legions of fanboys camping outside his office.
posted by omnikron at 3:42 PM on March 15, 2012 [1 favorite]
And good on him for disappearing too. All his stuff is still available, he can go back to enjoying his life, and I'm not sure exactly who is supposed to be losing out here. I do wish the journalist had respected his wish for privacy though...my heart sinks at the prospect of legions of fanboys camping outside his office.
posted by omnikron at 3:42 PM on March 15, 2012 [1 favorite]
Ruby has some lovely subtleties and can be a fun to work with, raise your hand if you love to use .inject({}){|h,f| blah}. I ran into _whys sites and developed a small perception of the subculture a while after I'd been using basic ruby, and was perplexed and amused at the brouhaha in a teapot on a variety of blogs. Too bad _why couldn't have found an ongoing balance that work but I was also happy to hear he's alright.
posted by sammyo at 4:12 PM on March 15, 2012
posted by sammyo at 4:12 PM on March 15, 2012
Some jerk went to extraordinary lengths to stalk the person behind _why. That's much more of an asshole move, and if I were in _why's shoes I would have been very angry and I too would have pulled the plug.
Then both you and _why need to learn that the actions of one person do not and should not reflect the community as a whole.
posted by JHarris at 4:27 PM on March 15, 2012
Then both you and _why need to learn that the actions of one person do not and should not reflect the community as a whole.
posted by JHarris at 4:27 PM on March 15, 2012
Then both you and _why need to learn that the actions of one person do not and should not reflect the community as a whole.
And?
Oh, you mean that the actions of one person cannot be a sufficient reason for leaving a community?
I disagree.
posted by LogicalDash at 5:01 PM on March 15, 2012
And?
Oh, you mean that the actions of one person cannot be a sufficient reason for leaving a community?
I disagree.
posted by LogicalDash at 5:01 PM on March 15, 2012
Oh, you mean that the actions of one person cannot be a sufficient reason for leaving a community?
I disagree.
Then J. Random Troll will be able to exclude you from anything he wants. For the LULZ.
posted by JHarris at 5:28 PM on March 15, 2012
I disagree.
Then J. Random Troll will be able to exclude you from anything he wants. For the LULZ.
posted by JHarris at 5:28 PM on March 15, 2012
A complete dossier of personally identifying information is a fair ways beyond J. Random Trolling.
posted by LogicalDash at 5:29 PM on March 15, 2012
posted by LogicalDash at 5:29 PM on March 15, 2012
It's just a matter of scale, isn't it? Some people put more effort into it than others. So he rolled a natural 20 on his Obnoxiousness stat.
The fact is, you're giving one person the power to deprive everyone else of your support, without them having any say-so. Many of them would be just as upset over the actions of such a jerk as you.
posted by JHarris at 5:31 PM on March 15, 2012
The fact is, you're giving one person the power to deprive everyone else of your support, without them having any say-so. Many of them would be just as upset over the actions of such a jerk as you.
posted by JHarris at 5:31 PM on March 15, 2012
"just"?
I'm certainly not going to defend the way _why executed his info-suicide, but you seem to be arguing that to commit it is never acceptable. I think. Actually, you've changed your argument too many times for me to tell. Do you still think it matters whether the troll reflects the community as a whole? Do you think that upsetting members of the community makes leaving that community not okay? Go on.
posted by LogicalDash at 5:41 PM on March 15, 2012
I'm certainly not going to defend the way _why executed his info-suicide, but you seem to be arguing that to commit it is never acceptable. I think. Actually, you've changed your argument too many times for me to tell. Do you still think it matters whether the troll reflects the community as a whole? Do you think that upsetting members of the community makes leaving that community not okay? Go on.
posted by LogicalDash at 5:41 PM on March 15, 2012
I have changed nothing; my previous comment still applies. I don't have a single argument; I have a perspective, and it gets expressed in mutliple ways, because it's part of my worldview, a connected body of thoughts and opinions that support each other. But that's okay, because to defeat an argument you just need to find one thing wrong with it. If you need it phrased as one sentence: _why is giving a troll power over him, and over the community, a community who would be aghast at his actions as he is.
I do not think "infosuicide" is a good idea, no, but that and "leaving a community" are not at all the same thing. Choosing to stop participating, sure, right, fine, but also pulling out all your contributions from that community? AND all the open source projects that people rely upon? That is selfish. Your work is never entirely your own; when you call it open source, doubly so. You do nothing in a vaccum. As people's online lives become ever more intertwined, it will become even more destructive to try to commit "infosuicide." What a dumb term that is, anyway.
To stop further contributing, that is fine. To try to obliterate what you have contributed before, that is ridiculous. To do it because one person was a idiot, that is vindictive and misguided.
posted by JHarris at 6:24 PM on March 15, 2012
I do not think "infosuicide" is a good idea, no, but that and "leaving a community" are not at all the same thing. Choosing to stop participating, sure, right, fine, but also pulling out all your contributions from that community? AND all the open source projects that people rely upon? That is selfish. Your work is never entirely your own; when you call it open source, doubly so. You do nothing in a vaccum. As people's online lives become ever more intertwined, it will become even more destructive to try to commit "infosuicide." What a dumb term that is, anyway.
To stop further contributing, that is fine. To try to obliterate what you have contributed before, that is ridiculous. To do it because one person was a idiot, that is vindictive and misguided.
posted by JHarris at 6:24 PM on March 15, 2012
From the last page of the article, about the RubyConf in September 2011:
The speakers hand-drew name cards, reading, left to right, “Thelma,” “Brenda,” “Sally,” “Janet,” and “Lois.” Brenda had a sea captain’s hat and a pipe. The panelists all sported varying days’ worth of facial-hair growth. The point would be, the moderator said, to learn as little as possible, and he encouraged everyone to leave to find a better panel to attend. The crowd roared.
I guess the sexism thing is alive and well.
It's funny because those are girls' names!
posted by mmoncur at 6:40 PM on March 15, 2012 [1 favorite]
The speakers hand-drew name cards, reading, left to right, “Thelma,” “Brenda,” “Sally,” “Janet,” and “Lois.” Brenda had a sea captain’s hat and a pipe. The panelists all sported varying days’ worth of facial-hair growth. The point would be, the moderator said, to learn as little as possible, and he encouraged everyone to leave to find a better panel to attend. The crowd roared.
I guess the sexism thing is alive and well.
It's funny because those are girls' names!
posted by mmoncur at 6:40 PM on March 15, 2012 [1 favorite]
(And now, I'm going to commit infosuicide from this thread, because my last comment was rather too heated. Zoop!)
posted by JHarris at 6:41 PM on March 15, 2012
posted by JHarris at 6:41 PM on March 15, 2012
Your work is never entirely your own; when you call it open source, doubly so.
And that is why people who had additional copies of _why's projects were able to legally "adopt" them and carry on work without his express permission. They had the source, and as such they had the legal right to do stuff with it.
I've argued that there are sometimes social responsibilities that come with participation, but as an open source developer, I can say wholeheartedly that my projects are mine to do with what I wish. I can take them down or leave them up, turn them over to someone else, etc. Releasing software as open source does not obligate me to continue hosting the software after I have left the project and/or community if I don't want to.
posted by verb at 8:27 PM on March 15, 2012
And that is why people who had additional copies of _why's projects were able to legally "adopt" them and carry on work without his express permission. They had the source, and as such they had the legal right to do stuff with it.
I've argued that there are sometimes social responsibilities that come with participation, but as an open source developer, I can say wholeheartedly that my projects are mine to do with what I wish. I can take them down or leave them up, turn them over to someone else, etc. Releasing software as open source does not obligate me to continue hosting the software after I have left the project and/or community if I don't want to.
posted by verb at 8:27 PM on March 15, 2012
Okay, I've thought better about my previous comment now --
I don't like the idea of infosuicide because when we contribute to communities, whether we like it or not, people come to rely upon what we've contributed. That is the point of contributing, to give other people something to build on. When we pull that away our positive efforts become a net negative, we harm the community more than if we never contributed in the first place, especially if we don't tell anyone why, or even that, we're doing to do it.
It's perfectly okay to decide to stop contributing. If you develop a creepy stalker, well, I disagree with that as a reason to pull out of a programming community but to each his own. But for hosted projects, at least, throw the code up on a free depository so others can pick up the banner.
I think I'm so upset about LogicalDash's reaction in that this seems obvious to me.
posted by JHarris at 8:30 PM on March 15, 2012
I don't like the idea of infosuicide because when we contribute to communities, whether we like it or not, people come to rely upon what we've contributed. That is the point of contributing, to give other people something to build on. When we pull that away our positive efforts become a net negative, we harm the community more than if we never contributed in the first place, especially if we don't tell anyone why, or even that, we're doing to do it.
It's perfectly okay to decide to stop contributing. If you develop a creepy stalker, well, I disagree with that as a reason to pull out of a programming community but to each his own. But for hosted projects, at least, throw the code up on a free depository so others can pick up the banner.
I think I'm so upset about LogicalDash's reaction in that this seems obvious to me.
posted by JHarris at 8:30 PM on March 15, 2012
Vitamin R = can of Rainier.
posted by Foam Pants at 8:32 PM on March 15, 2012 [1 favorite]
posted by Foam Pants at 8:32 PM on March 15, 2012 [1 favorite]
It may obligate you to say you're taking them down after X days and that you're abandoning the project, but other than that I agree with verb.
posted by JHarris at 8:33 PM on March 15, 2012
posted by JHarris at 8:33 PM on March 15, 2012
I agree with everyone who's said that _why doesn't owe us anything. Glad to hear he's doing OK. And it was a good article, but it needed some chunky bacon.
I've been programming for a decade or so. I've wanted to learn Ruby and Rails for a while, but haven't made a serious effort until recently. I've been taking Berekeley's free SaaS class for the past few weeks - it looks like people can still sign up. It's for people who know how to program another language like Java, but who don't necessarily have any web development background.
It's really a general software engineering / agile development course, but with all the assignments in Ruby and Rails. For last week's homework, we modified a Rails app and pushed it to Heroku. The course's testing tool automatically sends requests to the student's app and grades the app based on its responses.
Things have definitely changed since I went to school...
posted by problemspace at 8:59 PM on March 15, 2012 [2 favorites]
I've been programming for a decade or so. I've wanted to learn Ruby and Rails for a while, but haven't made a serious effort until recently. I've been taking Berekeley's free SaaS class for the past few weeks - it looks like people can still sign up. It's for people who know how to program another language like Java, but who don't necessarily have any web development background.
It's really a general software engineering / agile development course, but with all the assignments in Ruby and Rails. For last week's homework, we modified a Rails app and pushed it to Heroku. The course's testing tool automatically sends requests to the student's app and grades the app based on its responses.
Things have definitely changed since I went to school...
posted by problemspace at 8:59 PM on March 15, 2012 [2 favorites]
Huh, the Lua folks are a little MINSWAN-flavoured, too. It's nice.
posted by clvrmnky at 9:13 PM on March 15, 2012
posted by clvrmnky at 9:13 PM on March 15, 2012
Releasing software as open source does not obligate me to continue hosting the software after I have left the project and/or community if I don't want to.
Indeed, and I'm trying to remember who first made me realize this — that open-source means there's always a way forward. That it's just as easy for me to adopt orphaned code as it was for someone else to abandon it in the first place.
Ah, now I remember. It was Mark Pilgrim. The wise-ass.
posted by savetheclocktower at 9:28 PM on March 15, 2012
Indeed, and I'm trying to remember who first made me realize this — that open-source means there's always a way forward. That it's just as easy for me to adopt orphaned code as it was for someone else to abandon it in the first place.
Ah, now I remember. It was Mark Pilgrim. The wise-ass.
posted by savetheclocktower at 9:28 PM on March 15, 2012
Not really. If your code is really released under an open source license, you can take down your copy, but you can't prevent others from continuing to distribute their copies. That's really the whole point of open source - to ensure that such software remains available in source code form for others to use and distribute.
Yes, but then you're doing something with your project, which happens to have the same source code (at least at the beginning of its life) as my project, which no longer exists.
I distinguish between a "project," which implies some level of presence and support or continued development, and the source code itself. With OSS that distinction is possible; forks can result in multiple projects from the same source tree, and the death of one project doesn't haev to impact any others. Tools like GitHub in particular have normalized that idea that you start many projects by first forking the original, then making whatever modifications you need in your own parallel project.
It's important to distinguish between the rights of a programmer who releases OSS software, and the expectations that a community has of its members. _why absolutely, positively was within his rights, but a strong case can be made that he was not being a good member of the Ruby community. Of course, he was withdrawing from that community, and if he wanted to make that withdrawal 'stick', violating its norms in that way was a pretty "final" act.
That's one of the things that I find really fascinating about infosuicide as a concept. I understand JHarris' strong emotional reaction to it. If I'm honest, I have to admit that I'm something of a digital hoarder. I collect ephemera, interesting projects, useful libraries, memorable essays, and so on. I sometimes bookmark them, but I'm also obsessive about actually archiving local copies of them. Part of it is a remnant of discovering the internet in an age when preservation wasn't being considered at all: the hottest site of the day might easily vanish in a few months if someone graduated, and the Wayback Machine wasn't there to bail us out.
But if a site goes down and I have the only remaining version of its contents, copyright law aside, the old site is well and truly dead and any new site with te same content will be a labor of love by me rather than the original artist. For someone who wants to escape the burden of an already-created digital identity, that's the ultimate way of forcing someone else to adopt a project, of insuring that it is either picked up and cared for explicitly, or that it disappears entirely rather than fading away.
I understand the negative reaction, but I also understand how compelling that can be.
posted by verb at 2:03 AM on March 16, 2012
Yes, but then you're doing something with your project, which happens to have the same source code (at least at the beginning of its life) as my project, which no longer exists.
I distinguish between a "project," which implies some level of presence and support or continued development, and the source code itself. With OSS that distinction is possible; forks can result in multiple projects from the same source tree, and the death of one project doesn't haev to impact any others. Tools like GitHub in particular have normalized that idea that you start many projects by first forking the original, then making whatever modifications you need in your own parallel project.
It's important to distinguish between the rights of a programmer who releases OSS software, and the expectations that a community has of its members. _why absolutely, positively was within his rights, but a strong case can be made that he was not being a good member of the Ruby community. Of course, he was withdrawing from that community, and if he wanted to make that withdrawal 'stick', violating its norms in that way was a pretty "final" act.
That's one of the things that I find really fascinating about infosuicide as a concept. I understand JHarris' strong emotional reaction to it. If I'm honest, I have to admit that I'm something of a digital hoarder. I collect ephemera, interesting projects, useful libraries, memorable essays, and so on. I sometimes bookmark them, but I'm also obsessive about actually archiving local copies of them. Part of it is a remnant of discovering the internet in an age when preservation wasn't being considered at all: the hottest site of the day might easily vanish in a few months if someone graduated, and the Wayback Machine wasn't there to bail us out.
But if a site goes down and I have the only remaining version of its contents, copyright law aside, the old site is well and truly dead and any new site with te same content will be a labor of love by me rather than the original artist. For someone who wants to escape the burden of an already-created digital identity, that's the ultimate way of forcing someone else to adopt a project, of insuring that it is either picked up and cared for explicitly, or that it disappears entirely rather than fading away.
I understand the negative reaction, but I also understand how compelling that can be.
posted by verb at 2:03 AM on March 16, 2012
I loved that book by _why. Hope he's happy in his new endeavours.
With regard to the steep learning curve on Ruby.
I suspect that to produce the sort of code which is cooed over by the Ruby elite, then there is a steep learning curve. However, for the purposes of knocking up a quick website and getting it out there, it's a lot shallower than other languages.
I started programming RoR 5 months ago, and I have to say that I've been quite impressed by the language. Last week I knocked up a classified ads listing site (with MeFi style commenting) and made it live in less than 3 days. It's not a complicated site, but I'd have struggled to get anything like that out in any other language I've programmed in.
Here's what's great about it.
Gemfile: If you need to do something quite complicated, then the process is as follows.
a) Google your problem, and find a gem that does what you want.
b) add that gem to your gemfile and do a "bundle install"
c) Yay!
Hashes: OMFG. Hashes (Or dictionaries) are just the best thing ever.
Community: The rails community is very friendly. I was a bit worried about the rock-star / brogrammer nature of the rails community, but I've seen nothing but niceness and help.
There are some negatives too. It's far too easy to break a site with a minor change, and TDD in ruby is an almighty pain. (The emphasis on testing is a pain too, but that's because I'm a naughty programmer) There's a worrying tendency for people to produce obfuscated code. The recent mass-assignment brouhaha shows that there can be a touch of arrogance in people. Apart from a few big name sites (github, basecamp). As a framework, it's not used as much as people would have you believe.
But it's been a pleasant experience, learning me some RoR. I heartily recommend it.
posted by zoo at 2:43 AM on March 16, 2012
With regard to the steep learning curve on Ruby.
I suspect that to produce the sort of code which is cooed over by the Ruby elite, then there is a steep learning curve. However, for the purposes of knocking up a quick website and getting it out there, it's a lot shallower than other languages.
I started programming RoR 5 months ago, and I have to say that I've been quite impressed by the language. Last week I knocked up a classified ads listing site (with MeFi style commenting) and made it live in less than 3 days. It's not a complicated site, but I'd have struggled to get anything like that out in any other language I've programmed in.
Here's what's great about it.
Gemfile: If you need to do something quite complicated, then the process is as follows.
a) Google your problem, and find a gem that does what you want.
b) add that gem to your gemfile and do a "bundle install"
c) Yay!
Hashes: OMFG. Hashes (Or dictionaries) are just the best thing ever.
Community: The rails community is very friendly. I was a bit worried about the rock-star / brogrammer nature of the rails community, but I've seen nothing but niceness and help.
There are some negatives too. It's far too easy to break a site with a minor change, and TDD in ruby is an almighty pain. (The emphasis on testing is a pain too, but that's because I'm a naughty programmer) There's a worrying tendency for people to produce obfuscated code. The recent mass-assignment brouhaha shows that there can be a touch of arrogance in people. Apart from a few big name sites (github, basecamp). As a framework, it's not used as much as people would have you believe.
But it's been a pleasant experience, learning me some RoR. I heartily recommend it.
posted by zoo at 2:43 AM on March 16, 2012
Here's when I decided Ruby was a hell of a language.
I was doing some work with the paypal API. Now paypal has this weird data structure it returns where every transaction in a list of transactions looks like "L_{fieldname}{arraypos}". (e.g. "L_EMAIL9"). I wanted to convert a set of these "L_" fields into an array of hashes.
This way, I could grab lines easily. e.g.
transactions.each do |dict| {output_text dict["EMAIL"]}
This is the code I came up with.
The code doesn't make much sense to me 1 month down the road & this is a very bad thing, but by god the language is super powerful. And if I can make it do something like that, then those facilities are pretty much available to most programmers.
posted by zoo at 2:58 AM on March 16, 2012
I was doing some work with the paypal API. Now paypal has this weird data structure it returns where every transaction in a list of transactions looks like "L_{fieldname}{arraypos}". (e.g. "L_EMAIL9"). I wanted to convert a set of these "L_" fields into an array of hashes.
This way, I could grab lines easily. e.g.
transactions.each do |dict| {output_text dict["EMAIL"]}
This is the code I came up with.
The code doesn't make much sense to me 1 month down the road & this is a very bad thing, but by god the language is super powerful. And if I can make it do something like that, then those facilities are pretty much available to most programmers.
posted by zoo at 2:58 AM on March 16, 2012
The code doesn't make much sense to me 1 month down the road & this is a very bad thing
That's weird, just from your description of what it's supposed to do, vague awareness of Ruby, and knowledge of Python, it seems pretty damn clear to me.
posted by kenko at 8:15 AM on March 16, 2012
That's weird, just from your description of what it's supposed to do, vague awareness of Ruby, and knowledge of Python, it seems pretty damn clear to me.
posted by kenko at 8:15 AM on March 16, 2012
I think Perl gets a bad rap for unmaintainability; the blame really rests on the developers who use it badly, and you can write unmaintainable code in any language. (Having said that, in my career I've been handed some absolutely heinous perl code.)
Also, FWIW Mark Pilgrim seems to be active again, though there's no sign of the Dive Into stuff making a reappearance.
posted by whir at 12:19 PM on March 16, 2012
Also, FWIW Mark Pilgrim seems to be active again, though there's no sign of the Dive Into stuff making a reappearance.
posted by whir at 12:19 PM on March 16, 2012
« Older The Extractive Institutions in US | Every new teaser poster shows a worse example Newer »
This thread has been archived and is closed to new comments
posted by yerfatma at 7:24 AM on March 15, 2012 [3 favorites]