1. 42

    This whole article is a trashfire.

    The author seems unable to grasp that, to the extent bandwidth-hungry services like Netflix tax an ISP’s infrastructure, it’s because the ISP’s subscribers are requesting those services, not because megabits are just getting thrown around by Netflix for no reason.

    There’s an unquestioned assumption of “competition’s” ability to drive “better” service, which flies in the face of history, namely that the telecom sector has been getting less competitive with less regulation.

    I had to quit reading after this gem:

    Second, the public, pro-net neutrality advocates, and other stakeholders should acknowledge and consider current alternative market-based practices on the local level. Throughout Europe and across parts of the US, folks enjoy high-speed, unrestricted, and low-cost Internet access via municipally or cooperatively owned carrier-neutral fiber.

    As if it weren’t the ISPs killing programs like these.

    1. 14

      As if it weren’t the ISPs killing programs like these.

      You ain’t kidding. They are actively lobbying for local legislation to prevents municipal broadband. There are already laws on the books in several states. For a recent example, see: https://arstechnica.com/tech-policy/2017/01/virginia-broadband-deployment-act-would-kill-municipal-broadband-deployment/

    1. 14

      In addition, Filecoin shows certain characteristics of a Ponzi scheme but the trust built by the team members in the past leads to believe otherwise.

      “It looks like a duck and quacks like a duck, but c’mon… they’re good guys.”

      1. 2

        I’ve converted my mail flow to use mblaze. Along with fsf and a few helper scripts, it’s perfect for my use. Used in conjunction with offlineimap + msmtp, and $EDITOR.

        Never looking back.

        1. 1

          What is fsf in this context? For that matter, what is mblaze?

          1. 2

            I think mblaze is this and I think fsf would be some sort of fuzzyfinder?

            1. 2

              Maybe fzf? I could see that being a nice workflow.

              1. 2

                Correct. I just hooked it up to my script and forgot about it. It does nicely with the –preview command. There’s probably more I could do with that, but for now it solves pretty much all of my mail consumption related issues

                1. 1

                  I’d be interested in a more in-depth explanation of your setup, if you’d like to share it…

                  1. 2

                    Aside from a regular offlineimap setup and an also-regular msmtp setup, I have two scripts to help me with mblaze: one called “mymail” and one called “mshowwithawk” (which is a mouthful, but I never invoke it by hand so I don’t care.

                    mshowwithawk is:

                    #!/bin/bash
                    
                    mshow $(echo $1 | awk '{print $2}')
                    

                    and mymail is:

                    #!/bin/bash
                    mlist -s ~/Mail/$1/$2 | msort -d | mseq -S | mscan 2> /dev/null | fzf --preview="mshowwithawk {}"
                    

                    Usage is: mymail <any ~/Mail/ subdir that contains maildirs> . Reason for this script is I have two accounts, and I often switch between my work and personal email, so I often call it like “mymail otremblay INBOX” or “mymail work INBOX”. Next improvements are gonna be defaulting to INBOX and allowing for the -s flag to be passed or not from the mymail script (because sometimes, I need to see old mail too.)

                    The output is a list of selectable items, with a preview of the currently selected item on the right. Yes, right in the terminal. The list is populated by mail prefixed with an ID I can then use with mshow if I need better output (say, in case the email provided a worthless (but still present) text/plain thing. I use elinks to dump out text/html messages (configurable in mblaze).

                    I use mblaze’s “minc” to pass messages from the maildir’s new to cur, and mflag -S to flag everything as read once I’m done.

                    I like the workflow because it is just a construction of a collection of small specialized programs working together. I mean, if needed, I can still just invoke mlist by itself and grep through email headers, if I so desire. Or pump the whole output elsewhere to any other unix-standard utility if I want to. Heck, it would be trivial to include spamassassin header parsing, or any other kind of header parsing. I’m also a sucker for CLI interfaces, mostly on account of it being the easiest way I know to compose software with one another out of small blocks. I feel like I should probably start a blog about my crap, but I’m afraid that said crap would be too trivial for people to enjoy.

          2. 1

            mblaze is indeed pretty nice (similar to mu. I use it to automate some tasks with n my email workflow (archiving, marking as done, digging up the full thread when a mail arrives, …) it helps me a ton. But when it comes to actually read and reply to mails, it doesn’t cut it, so I use mutt for that.

          1. 9

            It’s almost like math isn’t a replacement for a regulatory system.

            Almost like that.

            1. 3

              It’s not like this is a problem in Ethereum or any Blockchain. It’s the stupidity of users being abused. Not suprising at all.

              1. 12

                When the expected outcome of average users using your service is that they get scammed out of all their money, the service is broken and it’s not the users at fault.

                1. 4

                  Exactly. All these comments negative of the traditional system aren’t coming with plentiful examples of regulated banks opening up, taking a lot of deposits, and then closing keeping the money. It might happen but I can’t recall one instance in recent years. Shit happens all the time with these crypto currencies and exchanges.

                  People wanting more trustworthy banking can just start a credit union or non-profit bank with protections in its charter. Charge fair prices with Stripe-like payment processing. Maybe try to make transfers as cheap or free as possible. Offer secure methods with assurance going up as monthly/yearly fees do. Invest in stuff to keep money coming in. And so on.

            1. 10

              The list doesn’t point out Plan 9, which is my personal favorite not-UNIX. A consistent, network transparent interface for everything is still something I want.

              1. 4

                Thanks for reminder. I meant to put that one on there. This is the old one from a restored backup.

                EDIT: If I added Plan 9, I’d also have to add the distributed, mainframe OS that was deployed by mid-80’s. Unisys found CTOS threatening enough to buy and shut down haha.

                https://en.m.wikipedia.org/wiki/Convergent_Technologies_Operating_System

              1. 14

                Probably not.

                Hey, that was easy.

                1. 2

                  This was down-voted, but I think your assessment is spot-on.

                  https://en.wikipedia.org/wiki/Betteridge’slawof_headlines

                  Easy.

                1. 2

                  Java’s results are super surprising. I hold the JVM’s GC in extremely high regard, so I would love to see comments from someone who is more familiar with it’s implementation.

                  1. 10

                    Java is optimized for throughput, Go is optimized for latency. There is no free lunch.

                    1. 3

                      After reading into this more, it looks like the Java runtime has a number of GC algorithms available, and will use heuristics to pick one as the program runs. The goal of this is to allow it to perform well with either low latency or high throughput requirements.

                      In the Java benchmark results listed in the blog post, one version lets the runtime decide which algorithm to use, and the other explicitly uses the G1 collector. After reading the HotSpot docs, it looks like the concurrent mark and sweep (similar to Go’s) GC might perform well with low latency requirements.

                    2. 7

                      The reddit user jcipar managed to get the max pause down to 22ms by tweaking parameters.

                      He also mentioned that the JVM GC does a lot of online tuning, so the max pause times may drop over a longer run of the program. This is similar to the Racket GC, where the maximum pauses are >100ms at the start of the run, but converge to around 20ms as the program continues to run.

                      It would be nice to run the benchmarks for a longer period of time, and only measure max pause times once this “ramp up” period is over.

                      1. 1

                        Ya - I was going to say. The magic of Java (and .NET actually) is that they’re much better given long run times with their Server GC’s. I’d like to see the benchmarks over the course of a day or even a week.

                      2. 4

                        Gil Tene suggests a part of this is the lack of compaction in Go

                        .@jamie_allen Go’s (current) collectors don’t compact. Different problem space. Not compacting in Java mean not running very long.

                        1. 2

                          I wonder how they deal with heap fragmentation in that case?

                          1. 1

                            This makes sense at first blush. Java is pointer-mad.

                        1. 6

                          I enjoy writing Ken C when the occasion arises. Embedded structs, the %r verb, mk, and the header rules all make it feel nicer than standard C.

                          1. 3

                            Go has tooling to do this: see go oracle. Most editors have decent integration for this.

                            1. 1

                              My only gripe with the oracle is that you can’t ask it to ignore files that don’t build. So make sure the bit you’re working on is stubbed out, first.

                            1. 8

                              At work I mostly write in Ruby, sometimes in Java. I do most of my work in acme (and have for a while), at first on OS X, and for the past month I’ve been experimenting with Windows.

                              Odd things about my setup (all acme induced): I use real tabs in all programming languages, and I convert them to soft-tabs using git’s filter system and a custom, round-trip safe version of (un)expand I call detab and retab. I also have a preference for command line applications that print line at a time as opposed to using the entire terminal as a framebuffer of sorts. Finally, I’ve learned to like working without syntax highlighting and fixed width fonts.

                              I have a tendency to foolishly seek novelty in my tools (see Windows, heh), so I’m as surprised as anyone that I’ve stuck with acme for this long.

                              Disclaimer: I work for Microsoft. They let me use whatever computer or software I want, and they don’t know about this post.

                              1. 3

                                acme

                                Hi fellow tool wanderlust sufferer. I’ve used acme on and off for a while and really appreciate the constraints (syntax highlighting is a blight, and fixed width fonts too) but never manage to stick with it for all that long.

                                Any tips? Do you use plumber much, what other external programs are in your acme toolbox, etc.

                                1. 2

                                  The constraints are key. Yes, you can minimize and even hide open files in acme, but you have to do it on purpose, it’s not like that by default. Having a very obvious visual indication that I’ve scatterbrained allows me to regain focus.

                                  That’s probably the best feature for me. If I ever switch, my next editor will need this.

                                  I love how after pushing through for two months on the no-syntax highlighting thing, I know never skim code anymore.

                                  Tips, yes:

                                  • Three button mouse is a must. I got this one, but I wish it were wireless. I think I might Frankenstein a cheap wireless mouse into it one of these days, once the cable is done fraying.
                                  • I don’t add much to the plumber rules. At first I thought about a million rules to add, but I end up forgetting they exist. Now I just add one for git sha’s and another for JIRA tickets. Between those and the filename:linenumber I’m set.

                                  As far as external programs, I have:

                                  1. a+ and a- for indentation.
                                  2. nbsptab converts tabs to non-breaking spaces, which lets me post code in places that strip indentation.
                                  3. rem (adds or removes comments from selected lines, language aware).
                                  4. gg (which is just git grep).
                                  5. GB is git blame of the currently open file.
                                  6. SuPut which lets me save files I don’t have permission to save.

                                  Other than that I end up using sort, fmt, sed (still don’t grok the sam syntax :/), etc.

                                  1. 2

                                    This is all gold for working with acme. I have that same mouse, it’s great. Gitfiles is a utility like Netfiles (which is currently broken because of sftp…) that does magic with git repos, you may or may not find it useful.

                                2. 2

                                  Acme is pretty great.

                                  I found some tools to make writing Go nicer (auto format on Put and some nice wrappers around guru and friends) and wrote a few scripts to clean up win panes and such. I ended up writing a jira browser so that I could leave it less. It’s probably one of the easiest interactive editors to extend.

                                  1. 2

                                    Can you share your win cleanup tools? I still do Edit ,d

                                    1. 3
                                      #!/home/hank/plan9/bin/9 rc
                                      echo 'Edit ,x v/^% /d' | 9p write acme/$winid/body
                                      echo -n '/Edit ,x v\/\^% \/d/' | 9p write acme/$winid/addr
                                      echo -n 'dot=addr' | 9p write acme/$winid/ctl
                                      9p read acme/$winid/addr | awk '{printf("MX%s %s\n", $1, $2)}' | 9p write acme/$winid/event
                                      

                                      This is probably maximally ineffecient, but gets the job done. It writes out an edit line, then button 2’s it.

                                      1. 2

                                        Thanks for this! Software needs to be as polished as it needs to be :)

                                1. 8

                                  This doesn’t mention my favorite technique, “load less shit.”

                                  1. 2

                                    In between job hunting, I’m working on a Venti implementation and some helper libraries.

                                    1. 5

                                      I’ve used it a few times. I think the main issue that prevents me from using it more is that when I go to reach for it, I’m usually trying to send private key material to another developer, and then remember that GPG transferred stuff doesn’t have forward secrecy. If keybase.io had a way to transfer information to another user with forward secrecy, that’d be so sweet.

                                      1. 1

                                        post-it and fire, still undisputed champ of secret distribution

                                        1. 1

                                          Well, KBFS doesn’t have forward secrecy, but the saltpack standard does - see the ephemeral keypair generation in the header section. So you can’t have FS inside the keybase filesystem, but for individual files encrypted with the keybase CLI you can.

                                        1. 13

                                          If you want to try something Oberon-like, Acme from the various Plan 9 distros implement the same text-and-mouse UI. You can get it here.

                                          1. 6

                                            Yep. I enjoy most of the benefits of the Oberon UI every day in OS X using Acme from plan9port.

                                            Unfortunately making some text programs behave and not output escape sequences for colors is a constant battle, so from time to time I switch to using Terminal.app instead of Acme’s terminal, which somewhat limits the usefulness (I’m looking at you bundler, git and a bunch of node shit).

                                            The feel (as in look-and-feel) of Acme is quite different from OS X’s, but since the look itself is so different as well I have a good sense of place and it doesn’t trip me up anymore.

                                            It took me like a month before I was truly comfortable. Pressing up and down was particularly jarring as they do page-up and page-down, but now whenever I try to use something else I come running back to Acme in about a week.

                                            1. 3

                                              Unfortunately making some text programs behave and not output escape sequences for colors is a constant battle, so from time to time I switch to using Terminal.app instead of Acme’s terminal, which somewhat limits the usefulness (I’m looking at you bundler, git and a bunch of node shit).

                                              Included in plan9port is a filter “nobs” which filters escape sequences from text output. Maybe that helps you :) https://swtch.com/plan9port/man/man1/cat.html

                                              And, at least with git you can disable the color with --no-color (I don’t know if that works with every subcommand).

                                              1. 3

                                                I thought nobs was for backspace?

                                                git is actually quite well behaved with color, but the progress info on git-pull assumes your terminal can handle cursor control characters.

                                                1. 3

                                                  It removes the bold, etc. stuff from manpages, which should also be escape sequences, if i remember correctly, but I may be wrong :)

                                                  1. 3

                                                    The default man-style output from manual page tools (like mandoc, or the more traditional roff-based stuff) is actually an oddball character stream aimed at an honest-to-goodness typewriter. The only control character that appears in the output is generally the ASCII BS (backspace) character:

                                                    • Bold characters are rendered by the typewriter carriage being wound back by one cell and the same character typed again, increasing the amount of ink on the page for that character.
                                                    • Underlined characters are emitted by the typewriter carriage being wound back by one cell and an underscore (_) character being typed “over” (or, as it were, under) the character to be underlined.

                                                    These encodings obviously don’t work in a video terminal, where overwriting a character simply removes all evidence of the previous cell contents, but by simulating a typewriter you can turn the stream of characters into a set of appropriate control sequences for, say, an xterm, or even into HTML. A simulation of this kind is also what tools like more and less are doing to make manual pages render on a video terminal with bold and/or underlined output.

                                                    1. 1

                                                      thanks for the explanation :)

                                                  2. 3

                                                    nobs => No Bullshit.

                                                2. 2

                                                  I’ve been meaning to try using acme as my standard editor, but the color scheme always turns me away. Is there a way to change it?

                                                  1. 7

                                                    Short of editing the source (maybe here?), not really. Quoting Russ Cox from… elsewhere:

                                                    At Bell Labs, Rob switched acme and sam from black and white to color in the development version of Plan 9, called Brazil, in the late fall of 1997. I used Brazil on my laptop as my day-to-day work environment, but I was not a developer. I remember writing Rob an email saying how much I enjoyed having color but that it would be nice to have options to set the color scheme. He wrote a polite but firm response back explaining his position. He had worked with a graphic designer to choose a visually pleasing color palette. He said he believed strongly that it was important for the author of a system to get details like this right instead of defaulting on that responsibility by making every user make the choice instead. He said that if the users revolted he’d find a new set of colors, but that options wouldn’t happen.

                                                    It was really a marvelous email, polite yet firm and a crystal clear explanation of his philosophy. Over the years I have from time to time spent hours trying to find a copy of that email. It is lost.

                                                    But I can say definitively, both as a matter of philosophy and because I did the lion’s share of the open source release work for both systems since color went in, that there have never been color theme files in the Plan 9 distribution, nor in plan9port.

                                                    1. 6

                                                      Not just any graphic designer, but artist and wife Renee French.

                                                      Here is a good explanation that was posted to 9fans:

                                                      the human system likes nature and nature is full of pale colors, so something you’re going to look at all day might best serve if it were also in relaxing shades. renee french helped me with the specifics of the color scheme (she’s a professional illustrator and my collar vision is suspect), once i’d figured out how i wanted it to look. there are still some features of the color system that i put in that i think no one has ever noticed. that’s a good thing, in my opinion; the colors should fade away, if you’ll pardon the expression.

                                                      http://www.mail-archive.com/9fans@cse.psu.edu/msg13035.html

                                                      1. 3

                                                        Wow, of course, Tufte!

                                                      2. 3

                                                        Well, I guess that rules it out for me :(

                                                        1. 5

                                                          There’s honestly a lot about Acme that rules it out for a lot of people :/

                                                          I’d say give it a shot and if the color is truly the only barrier, it’s probably one of the easiest things to change in the code. The behaviors or lack of features are a much higher barrier to entry.

                                                          Or the need for a three button mouse.

                                                        2. 2

                                                          If the colors where chosen with color-blindness in mind I 100% support this.

                                                          1. 2

                                                            Color-blindness is not the only visual problem and not all are always in the same mode. I do, for example, suffer from bright colors (white!) quite often.

                                                            Still, the solution for me isn’t theming (because my favourite websites don’t have it and have a white background), but shell-wide color inversion.

                                                            1. 2

                                                              Yeah I don’t agree with Mr. Pike’s reasoning either, I’m just lucky I’m cool with the default scheme.

                                                            2. 2

                                                              He said he believed strongly that it was important for the author of a system to get details like this right instead of defaulting on that responsibility by making every user make the choice instead.

                                                              In a world of knobs and buttons, I find this to be an incredibly refreshing stance.

                                                              When creating software I’ve always found one of the hardest decisions was around what control I retain. But I never seem to go wrong when I decide to remove a feature.

                                                            3. 5

                                                              It is possible to modify the source code and change the color of text, backgrounds, scrollbars, and tabbars, however syntax highlighting is not a thing in acme.

                                                              1. 1

                                                                The only way is to edit the source but doing so is actually pretty simple.

                                                              2. 2

                                                                I love acme, but the assumptions made by some cli tools about terminal capabilities really ruin the experience. It’s only half as bad when running a dumb shell inside emacs (M-x shell works roughly like win), since at least some control characters get interpreted correctly.

                                                                The node ecosystem seems to have settled on the design decision that the unix shell is not a textual interface between small programs, but a retro-style color display with animated emojis. A loss, really.

                                                                1. 2

                                                                  I hear ya: https://lobste.rs/c/zman75

                                                                  Reinvigorated by this thread I added a shell alias to de-colorize bundler. git is next. node stuff is harder, but I thankfully do a lot less of that.

                                                                  1. 2

                                                                    I wish there were a standard environment variable one could set to get rid of all of that, instead of having to use aliases for every separate command.

                                                                    https://twitter.com/jcs/status/524614835619635201

                                                            1. 14

                                                              Worth noting, since Servo’s speed has often been mentioned: very little work has gone into optimizing the network stack. So I noticed when playing around with this that often, the page load was very slow, but then using things on the page after was super fast.

                                                              Soooooooo pumped!

                                                              1. 6

                                                                Also, into input controls. When trying to log in to write this post, hitting <tab> ended up submitting the form. Text editing controls and line wrap in this field alspoo don’t work properly.

                                                                1. 4

                                                                  And into being able to enter text into the address bar apparently? Any suggestion is immediately selected, and my cursor keeps jumping left while typing.

                                                              1. 1

                                                                Why have the deferred function return func(*error) func(*context.Context) instead of func(*error, *context.Context)? I thought the former would make the call evaluate the error argument immediately?

                                                                1. 1

                                                                  it returns func(*context.Context) func(*error) though. we want to set up the context before function execution, and capture the error at the end

                                                                1. 3

                                                                  The post (and only this post on their blog) is 404ing, though it still appears in their search engine. The cache link goes to a cache of the 404 page, and neither Google cache nor archive.org have it, either.

                                                                  1. 4

                                                                    If you are not able to access this article, I’ve cached it:

                                                                    https://c0redump.org/d/2016-06-23-lack-of-options.pdf

                                                                    1. 2

                                                                      It’s also still linked to from their main page and the author’s page.

                                                                    1. 8
                                                                      1. 2

                                                                        It was a few years after this that L4 was developed, and it wasn’t too long after that CYGWIN was initially released. It’s funny to see how quickly some of these things change.

                                                                      1. 7

                                                                        The games industry seems much more hesitant to discuss the “sucker culture” problem than the software industry as a whole. (Although that could just be my perception due to systematic avoidance of things Silicon Valley related.)

                                                                        Is the programming/engineering work that much different than a similarly-sized software project? Along the same lines, Is the “creative” work (animation, graphic design, music, etc) radically different from their respective “parent” industries? I get the feeling the talent pool is considered effectively limitless, despite it having a reputation for being a technical and managerial shitshow. Is that the case? Why?

                                                                        1. 8

                                                                          The games industry pays poorly, even for good people. I wouldn’t count Zynga (which pays well, though its games are garbage) because it’s not actually a game company but a content/analytics company where games are pure commodity content.

                                                                          The appeal of the gaming industry, I think, is that games are actually finished. You ship a title, you have a genuine success and you move on.

                                                                          Compared to the rest of the corporate programming world, where most projects fail, and where getting promoted or moved to a more important or promising project is political rather than formal, that ability to finish something has an appeal. The negative of working on a shippable project (with a binary definition of being finished) as opposed to an Agile/enterprise project is that you have tight deadlines and less allowance for slack. Since these deadlines are set in part by people with bad intentions (i.e. cost cutters who don’t want to make great games, but who’d rather make the same crap, cheaper) it can be painful.

                                                                          The games industry seems much more hesitant to discuss the “sucker culture” problem than the software industry as a whole.

                                                                          I think that the age discrimination problem, except in a few elite studios, is worse. If you’re my age (I’m only 32) you’re not a “wage slave” working on a AAA product. Either you have an independent reputation in the community, or you’re out.

                                                                          Because the people in it are so young, and because the conditions are so bad, and because people have been indoctrinated into the belief that there are millions of hungry people ready to replace them (which is, sadly, true) there’s not much of a will to speak up. It’ll just make you more angry or get you fired.

                                                                          Is the programming/engineering work that much different than a similarly-sized software project?

                                                                          The economics are different. A game’s sales will be driven largely by its trailer. As with the movies, the marketing campaign leading up to the release determines the economic payoff. Quality pays off (with luck) on the back end. No self-respecting executive is going to bet on a back-end payoff (because, if the first week is poor, he might not keep his job long enough). This means that one core aspect of the game (graphics but, especially, the trailer) has a large commercial impact.

                                                                          The quality of the game, over the long term, will drive reputations of franchises, studios, and occasionally even individual designers and star programmers. However, most executives don’t care about product/studio reputations (they’re good enough at moving around that those things don’t affect them) and they certainly don’t want to hear anything from programmers/designers who pull for quality because of a value on their own personal reputations.

                                                                          If you care too much about the quality of what you’re releasing, the executives will paint you as a prima donna perfectionist. You’re not a team player, because you only want to ship an excellent product that will boost your personal reputation, as opposed to a mediocre one that will still make money. Regular software isn’t different in this regard, except for the fact that in regular software, people have largely agreed upon what level of quality is correct. In games, you have executives who view games as commodity “content”, while you have programmers and designers who consider themselves artisans and despise the commercial aspect of the work.

                                                                          I get the feeling the talent pool is considered effectively limitless, despite it having a reputation for being a technical and managerial shitshow. Is that the case? Why?

                                                                          So, I’m probably biased and working on incomplete information, and I’m also old, but I feel like the quality of games has declined in the past 20 years. The constraints of the 2D era brought us Final Fantasy VI and Chrono Trigger and Terranigma and Tales of Phantasia. These days, however, most games feel like third-rate movies with a small interactive component. There is excellence in contemporary video games in, say, the physics and verisimilitude– just not in gameplay. However, I’m also an old crank (not the target audience of mass-market video games). If I want a story, I’ll reach for a novel. If I want a puzzle, I’ll read a hard math paper. If I want a competitive social experience, I’ll break out a board game. When I look at a 2016-era video game, I’m impressed by the programming (the shading, the smoothness with which it re-renders perspective shots) but not by the game and certainly not by the story (if there even is one).

                                                                          Whatever the games industry is doing, however, seems to work well enough for it not to change. I’d imagine that the graphics PhDs are an exception to the horrible treatment that the plebs get.

                                                                          Is the talent pool limitless? Unfortunately, the games industry seems to be profitable while running mostly on commodity talent. Like I said, I’m sure that it hires a few top-notch people to do AI and graphics, and I’d imagine that they’re treated well. However, the games industry has managed to remain commercially successful while taking in a lot of marginal people and, unfortunately, also taking in some good people and treating them like the marginal ones.

                                                                          Unless we organize in the right way, the limitless supply of hungry, good-enough people will always be there.

                                                                          In fact, as time passes, I realize that it’s only a certain set of circumstances that make excellent people necessary or even useful. In particular, there are still cases where small teams are more efficient and large teams of “commodity” people are inefficient or even dangerous (security risks). There are others where large teams of commodity individuals outperform the excellent. I can out-code five kids straight out of college, but who’s going to know more about consumer trends and fashions? Even one of them wins on that front, much less five. Fashion matters a lot in the AAA games industry– there’s something to be said for having more eyes and hands, even if the average person isn’t especially knowledgable– and the large teams of mediocre people are probably necessary.

                                                                        1. 1

                                                                          Richard Stallman envisioned open source as an environment where people shared their code and other people would improve on it and this would gradually drive progress in the software world in more ways than a closed source environment ever could.

                                                                          No, he didn’t. This is intended as a bit of historical context, but it’s incorrect and shitty to characterize rms' free software advocacy this way.

                                                                          1. 1

                                                                            Um, which part is incorrect, exactly? Just to get the record straight.

                                                                            1. 1

                                                                              Richard Stallman is for free software, not “open source” software. He recommends people avoid the term. There are other things wrong with the statement but all in all it is a vastly inaccurate oversimplification.