1. 4

    The post date is 2010, this model has become known as Git Flow.

    I like GitHub Flow a lot better. This is elegantly described at https://guides.github.com/introduction/flow/index.html but originally discussed http://scottchacon.com/2011/08/31/github-flow.html

    1. 2


      In practice, Git Flow as described in the linked article is too complex for most uses.

    1. 10

      I enjoyed this post because it asked the radical questions. The biggest failing of our technological progress has been capitalism. That the public paid for the tech development but owns none of it.

      And if we want our crazy robot future, we better damn well own the robots.

      I for one think all workplaces should be run democratically instead of the authoritarian structure they are now. Democracy good for government, why not where we work?

      1. 8

        Democracy good for government

        I don’t think this claim is broadly accepted. As American politics showed, voters can and will democratically choose terrible policies and incompetent leaders. I’m not saying we should be living under a benevolent dictatorship, but democracy isn’t perfect.

        1. 3

          No it’s not. Democracy is the less worse that people can withstand. If people were mature enough the Platoo’s Politeia could become a reality, where everyone is a Philosopher who accepts virtue as the ultimate goal to achieve and there are no judges, rulers, nothing. Another alternative would be Anarchism. Even Communism in it’s description is the next stage of democracy, where people are not in need of anything physical. Unfortunately social and political evolution are totally disconnected from technological innovations and that’s why the later become ultimately dangerous.

          Nazism for example, which is an extremely silly ideology with no scientific basis to back-up any claims, is not a new idea but it was a 20th century feature after all.

          It’s not just American it’s world politics that show that there humans are not mature enough to embrace a really ground-breaking change yet.

          1. 1

            Imagine you go to the store and you have two options for strawberries. One of them has maggots, and one of them has flies. You have a choice in picking one or leaving. That is our current system. And it is clear people have left instead of making a choice. Don’t blame them for being handed rotten politicians. Blame the businesses who sponsored them and the venues that present them.

            1. 1

              I find your argument specious because politicians wield the monopoly on the use of legitimized coercion. Businesses don’t. At best, they can bribe politicians to indirectly wield legitimized coercion, but the politician is ultimately responsible for accepting said bribes.

          2. 4

            Have you ever worked at a worker-owned cooperative? It’s very interesting, and you might come away with a more nuanced understanding of democracy than “good, why not?”

            My own cooperative experience was unusually terrible (I was just thinking about what I lost to the thieves there, totally by coincidence) but I’ll probably go back for a second try at a different cooperative at some point in the next few years.

            1. 3

              The way i look at it is this: Democracy is the principle that those affected by decisions have some participation in their making. At a co-op, decisions may not work out for you, but you had a chance to participate in their making. In a non co-op, the majority have no say. So really it is about increasing your chances for good decisions that affect you. Does not guarantee it.

            2. 4

              One of the largest corporations in the world is a democratically run co-op. It seems to work very well.


            1. 2

              I think that this isn’t that interesting on its own–I have, however, been dying for a widget like the Travis-CI or Gitlab-CI realtime updating tails of a command line.

              Could this be extended to actually provide the view for seeing stdin in your browser? It seems less useful without that.

              1. 3

                This is covered in the examples section of the Github readme.

                1. 1

                  However, it is a very basic example. It only displays a single line..

                2. 2

                  It could totally be extended to do lots of things. Based on feedback I’ve gotten so far, I think it should do at least the following:

                  1. Serve up a basic WebSocket handler which allows the code you write for this to do things like:

                    (new Stream()).on(‘json’, function () {})


                    (new Stream()).on('line', function() {})
                  1. Provide a default page that just views stdin as you suggested
                  2. Provide a way to filter the input per client. So, when establishing a connection to /_ws you’d provide parameters filter=<pattern|keyword>
                  3. Provide some other endpoints that do useful things, like perhaps some basic graphing of the data, or some other things.

                  I created this so that I could use the browser to do some realtime visualization of what’s going on in a C program. I’ll pipe stdout to wipes and serve up my visualizations from the wipes web server using the data from the websockets. (This is the other reason it’s only line oriented data)

                1. 1

                  My first thought was also a Docker image for this. It seems like a perfect combination.

                  1. 7

                    Absolutely fantastic advice, particularly with regard to “perks” - that free case of beer every week in the office, the Xbox in the lounge, the Aeron chair at your desk, they all sound really great until you realize that you’re talking ~$1500/year and you just gave up $15,000/year in potential salary requirements over them. You can buy all the beer you want with more money.

                    1. 6

                      Money: The Unit of Caring is an interesting essay along those lines.

                      1. 3

                        Look at it from the opposite point of view. Suppose you’re working for a company that could have made your work life substantially more pleasant by buying a (tax-deductible) Aeron chair, Kinesis keyboard, large monitor, ping-pong table, and beer (if that’s what you’re into; I’m not). But the company decided not to do that, because it would save them $1500 a year. After all, if you really want those things you can spend some of your post-tax salary on them! What does that tell you about the company? It tells you it’s run by people who don’t see themselves as being on the same team you’re on. Rather than considering the company’s employers and investors as a group of people contributing different, necessary contributions to produce something valuable and distribute shares of the value thoughtfully and fairly, that management is more interested in playing the zero-sum game of making sure that as much as possible of whatever value gets produced gets allocated to somebody other than you, even if that’s at the cost of producing less value. [See note at bottom.]

                        It tells you the same thing, of course, if they expect you to drop your salary requirements by $15K in exchange for $1.5K of perks. But my experience is that the companies with the “perks” are usually the companies that pay more, too, because the same mentality that leads companies to skimp on chairs also leads them to skimp on salaries.

                        There may be other reasons a company with that kind of management is a fantastic place to work. The people you work with directly matter a lot more! But you have to keep in the back of your mind that it’s a company where the management is trying to rip you off. It may well be the kind of place where management will consider drinking beer at work that you bought yourself to be a sort of offense against the company.

                        What do I mean by “even at the cost of producing less value”? Think about it: it makes no sense to buy a US$1500 Aeron chair by first paying US$133 in federal payroll tax, then giving US$2007 nominally to the employee, with another US$133 in payroll tax deducted, plus another US$374 for income tax withholding, FICA, and Social Security, leaving the employee with US$1500 to spend on the chair, rather than simply spending the US$1500 directly, at which point you don’t owe any tax at all on it. And it also makes no sense to buy a US$300 office chair instead of a US$1500 Aeron chair for a programmer you’re paying US$120 000 per year. If you depreciate that US$1200 over the GAAP-compliant 7 years, that’s US$171 per year: 0.14% of the employee’s salary. Let’s say that employee produces US$400 000 per year in value for the company, or US$200 per hour. If that chair enables the employee to produce an extra hour’s worth of work per year, because they’re less tired and hurt less, the company is getting more value from the chair than it’s spending.

                        1. 2

                          This is a scam used by almost every cool startup on their young employees.

                          Having been burned by this before, it is a tough lesson to internalize. The perks do not add up to the lost income. It is just a way for an employer to cut costs.

                          1. 7

                            I think just comparing the dollar value of the perks against lost income isn’t really fair. Perks are a signal that company cultures values and encourages the use of those perks. We could look at a company cafeteria as a sinister ploy to keep you in the office longer, but the fact that the place is nice enough that people will stick around says a lot.

                            It’s possible to make an informed trade of income for culture without being ripped off.

                            1. 2

                              It’s possible to make an informed trade of income for culture without being ripped off.

                              Absolutely agreed. I just think that, for particularly very young engineers (say, right out of college or graduate school), they aren’t able to make an informed decision yet due to lack of experience. Culture is valuable; but even when beer and Xbox etc are symptoms of that culture, they’re just symptoms. It’s tricky for a novice to the world of professional employment to make that evaluation - and many of them are fooled.

                          2. 2

                            It might still sound great even after considering the pay difference. The benefits for the employer are obvious, it’s up to the employee to decide if what they get out of the deal is worth the pay cut. Would you be comfortable with a lower salary to be able to take an hour off in the middle of the day to sit down with a beer and play some Towerfall, or would you take the extra 15k to sit in a cube all year? Maybe if negotiation skills as important as the article states, you can have your cake and eat it too.

                          1. 2

                            A pretty good, if somewhat pessimistic, look at dysfunctional software projects.

                            It has been my experience in recent years that good code reviews and automated linting (at least) are becoming standard features of web app development.

                            So, things are looking up… maybe?

                            1. 9

                              I tend to think that Backbone is to Angular as Flask is to Django. The more ‘monolithic’ framework is really, really helpful, until you try to do something that goes against the grain of the framework. For this reason I tend to prefer micro frameworks like Backbone and Flask, though it usually does mean more code.

                              1. 3

                                This is exactly why I continue to use Backbone, plus add-ons like stickit for model-view binding.

                                It remains small enough that most developers can read the source code and keep it all straight in their heads and it isn’t opinionated about how to accomplish something. The minimalism and flexibility is key for me.