HNHacker News
TopNewBestAskShowJobs

bguthrie

2,217 karma · joined May 13, 2009

DirEng, Justworks. Founder, @orgspaceio. Ex Meetup, Slice, SoundCloud, ThoughtWorks. https://brianguthrie.com
submissionscomments
bguthrie··on Go Continuous Delivery is now open source
Congrats to the ThoughtWorks team! Go is a great product, and its open-sourcing is a very welcome move.
bguthrie··on Go Continuous Delivery is now open source
ThoughtWorks first released the commercial product that would become Go in 2008. It was rebranded later, shortly after the public announcement of Golang. Yes, it was a confusing move, but at the time there was no reason to believe that a programming language might conflict with a continuous delivery tool. Golang has produced a large and robust community, so of course it's confusing now. But it didn't come out of nowhere.
bguthrie··on Drop Dropbox
Think about what it means to the HN culture to have a subject that normally would have been flagged out of existence as overtly political suddenly be featured front and center

It means that a bunch of people who once thought they were somehow above or apart from politics find that they are not, and that the things that happen in the world constitute news of real interest to hackers. That's growth.

It's also misleading to talk about this as an issue of ideological purity. People talk about purity when the politics of the public figure in question are not extreme enough. The problem is that she helped start a war that killed rather a lot of people, none of whom are now able to lend their voices to the discussion, and those who wish to remember those people are obliged to speak on their behalf. You don't mind her politics, and that's cool. But no one's forcing me to pay Dropbox anything. So I won't anymore.

bguthrie··on The inexplicable rise of open floor plans in tech companies
At most organizations I've worked at that use an open floor plan for programmers, we pair-programmed aggressively. Subjectively, a good pair more than offsets the distractive drawbacks of an open floor plan. If instead you hand each programmer a pair of headphones as they walk in the door then yes, productivity's going to take a hit compared to closed offices. Working in isolation in an open floor plan is worse than working in isolation in offices.
bguthrie··on Pkgr.io: Easy way to get a Debian package out of any app
Gist of the thing:

    As a Rails developer, I've become tired of messing with
    ruby versions, gem dependencies, bundle installations,
    deploy-time asset precompilation on my servers,
    etc. ... Basically, what I wanted was a Heroku-like 
    workflow that generates and hosts debian packages, 
    which is what  exactly what PKGR provides.
As a customer of Heroku's excellent but rather expensive services, and a fan of deployment via package management, I'm certainly intrigued.
bguthrie··on Kotlin M7
Actually I think Hack might've just surpassed it.
bguthrie··on Empathy
NS is a common prefix for Apple-derived ObjectiveC classes. In that context it stands for NextStep, which Apple acquired many years ago. The NSHipster blog is a reference to this usage of NS. I understand that it has extremely negative connotations in Germany, but unfortunately you're going to have to take that up with Apple, not with the blog's author.
bguthrie··on Critical crypto bug leaves Linux, hundreds of apps open to eavesdropping
Unit tests may be written before or after the production code in question has been written. They provide no guarantee of the correctness of the final code, but they may find small things. Corrective unit tests as you've described them will not help you find this bug.

But finding bugs like the above is TDD's bread and butter. TDD dictates specifically that the test must be written first, that it must be isolated to a particular spot as much as possible, and the dumbest piece of code possible must be written in order to allow the author to move on to writing the next test. Someone TDDing this method would stub out any required external state in order to focus only on the piece of code in front of them.

The final system may not be correct––you must still perform high-level testing as you always would, and you must understand the rules of the system you're building. But you're apt to avoid the simple stuff.

bguthrie··on Pets vs. Cattle
Another term for this is "snowflake server"––every one's a little bit different. Good for skiing, bad for a data center. http://martinfowler.com/bliki/SnowflakeServer.html
bguthrie··on Why and how I write Java
I think one thing that this post touches on is the effectiveness of Java as a programming language for large projects.

I agree that Java has its uses, but I've always thought that this was one of the weaker ones. Java's poor syntactical support for clarifying abstractions like lambdas or rich data structures like hashmaps makes small projects larger than they need to be. The answer isn't to find a way to manage large projects; it's to find a way to make them smaller. Size is poison, and automated refactoring is no cure.

bguthrie··on The anonymity I know
I wish I knew what to tell you, except that I count myself among the people who like to hear the things you say. Please don't retreat––your voice is important. No one should have to be thick-skinned enough to endure that kind of abuse.
bguthrie··on The anonymity I know
Ugh, fixed. Thanks!
bguthrie··on The anonymity I know
I think what both pieces miss is the behavior that asymmetric anonymity seems to encourage. The ability to lambast public figures from behind a screen of anonymity seems to bring out the abusive worst in people, and the target has nowhere to run. Conversely, communities in which everyone is anonymous seem to foster a degree of creativity and respect rarely found elsewhere. I think Altman was thinking about the former when he addressed the app, and this piece addresses the latter. But they're different kinds of anonymity.

Edit: Asymmetric, not asynchronous.

bguthrie··on How to Burn Out Programming

    I've had to quit a couple of jobs due to the fact that 
    staying there maintaining the same old code base ... 
    would have been what resulted in my burnout.
Agreed––though if this is a problem for you, try consulting. But it's easy to forget that boredom can cause burnout too.
bguthrie··on The Day We Do Nothing Of Consequence
In the world of grand political change, three or four years is nothing. Don't give up hope yet. The Demand Progress folks are committed and have a good sense of what it takes to bring about political change in a democracy. Please support them.

And believe it or not, legislators do watch those calls and emails––especially calls. All of them of them will tell you that the perception of a groundswell of support or opposition to an issue is enough to start to sway minds on Capitol Hill. Don't give in to cynicism.

bguthrie··on Learning to Code vs Learning Computer Science
I have built many systems that were meant to be used seriously. Never once has my lack of understanding of graphics cards, for example, come back to bite me.

Every system is built on abstractions. You can argue about the value of understanding particular systems, but we are well past the point when any one person can or should understand them all. No one is arguing that it's acceptable to learn only the highest-level abstractions. But it is acceptable to let somebody else worry about some of the lower-level ones.

People who don't focus on understanding engineering systems often focus on understanding other systems––team dynamics, for example, or business needs. I've met a lot of developers who only cared about learning the technical side, and were happy to look down on developers who didn't feel the same. Is that wiser, somehow?

bguthrie··on UK porn filter blocks League of Legends update
Obligatory link: http://en.wikipedia.org/wiki/Scunthorpe_problem

"The Scunthorpe problem occurs when a spam filter or search engine blocks e-mails, forum posts or search results because their text contains a string of letters that are shared with an obscene word. While computers can easily identify strings of text within a document, broad blocking rules may result in false positives, causing innocent phrases to be blocked."

bguthrie··on The Day We Fight Back
Aaron was an intensely private person. I am fairly certain that "zero privacy" was not a goal that he valued.
bguthrie··on Losing Aaron: Bob Swartz on MIT's role in his son's death
I do not view the Abelson report––a document that declares the organization that commissioned and published it largely blameless––as the last word on the matter. Whether or not they were asked has no bearing on whether it would have made an impact, and later statements that it would have made no impact are self-serving speculation.
bguthrie··on Edward Snowden, Whistle-Blower
You're underestimating the importance of that paper trail. Knowing that they could have such a capability is not the same thing as knowing that they are actively exercising it, laid out in helpfully blunt Powerpoint. Yes, if you were paying attention, the signs were there. But even well-informed tech people have been taken aback by the breadth and sheer gall of the NSA's snooping. Snowden isn't the only NSA whistleblower, but he is the most important. He deserves the personal credit he's received.

As for the article, I'm thankful. If my relatives won't listen to me, maybe they'll listen to the New York Times editorial board.

bguthrie··on The Future of JavaScript MVCs
I agree––I've found this tremendously exciting. Thanks @swannodette for the code and the writeup.
bguthrie··on 1-star reviews of 'Extreme Programming'
There has never been an official XP certification. There is a ScrumMaster certification. I'd suggest that you avoid anyone who claims certified expertise in XP.

And no, people didn't "just do their jobs." Management methodology isn't a new idea.

bguthrie··on Are Your Programmers Working Hard, Or Are They Lazy?
The closest solution I've seen to measuring programmer productivity is pairing, followed by peer evaluation.

There is no hiding from a pair.

bguthrie··on Cars Kill Cities
I live close enough to my workplace and the basic necessities that I could walk to them if I so choose. Most people who own cars now live so far away from these things that they can no longer live without their four-wheeler. That doesn't seem all that free to me.
bguthrie··on Failed HN Launch vs. Reddit Paid Advertising: Which Converts Better
I hope this works as something of a second launch for them, because it seems like a great product.
bguthrie··on How to design a class
Yegge's right––specifically, he's right about Java, whose object-orientation many longtime Smalltalkers would frankly dispute. And yet, nouns still exist.

If the problem domain you're trying to grapple with is dominated by algorithms, an idiom that prefers verbs to nouns may be helpful.

If you're working in a very complex business domain, where the algorithms aren't especially interesting but the relationships between entities are, nouns are helpful.

Clojure and Haskell programs often utilize named types. Several OO languages have recognize the need for first(ish)-class function management. Ruby, Python, and Javascript are all good examples of languages that have attempted some compromise between the two. They are justifiably popular.

Good OO code isn't as different from good FP code as most partisans imagine. Remember that all good code has to satisfy at least three audiences: the computer, fellow programmers, and third-party consumers (who may or may not be either of the above). They all have different needs. Don't discount the importance of nouns for that third category.

bguthrie··on Work Can Wait
And in the world I live in, I sometimes have to make choices between attending social events and having some work availability. More mobile access means not having to make that choice as often. That's the point that Microsoft is trying to make (poorly).

The ads are ridiculous because no one wants to have to work at their kid's soccer game. But there are, I'd suggest, a fair number of people who'd like to attend the game but don't have that choice. Framed that way, remote work is freeing. The trouble with the ads is that they frame that work as some kind of virtuous shackle-extension rather than an arguably-necessary evil. That's a frame well worth pushing back on.

bguthrie··on Twitter Bootstrap without all the debt
After hand-crafting CSS with semantic markup for years, using the techniques suggested here, I've started liberally sprinkling Bootstrap classes in my markup. It's not clear to me that it's any less maintainable than the alternative.

My primary way of achieving reuse, as a developer, is through templating and partials and helpers; they're what I use to avoid runaway repetition of styles, which means that redundant Bootstrap class usage isn't often a pain point. But keeping classes inline does make it easier for me to debug layout problems at a glance, where relationships between elements are clear. Those classes might not have semantic value to the consumer of the page, but they certainly have semantic value to me. And most of the time, I care more.

Large CSS files, even semantic ones, are difficult to maintain, and often give you little feedback on the meaningful relationships that elements have with each other. Pure semantic markup is a myth: web pages are structured documents, and that structure has an impact on style, which is constrained by the limited descriptive power of CSS itself.

bguthrie··on Why are Amazon, Facebook and Yahoo copying Microsoft's stack ranking system?
Less documentation isn't always a bad thing. If you can't appeal to a written authority, you have to rely on your own judgment in the face of ambiguity.
bguthrie··on Why You Should Never Use MongoDB
Indeed, the article makes the point that most interesting data is relational, or at any rate contains valuable relations. Discarding efficient relationship management may be a mistake.
← PreviousPage 2 of 7Next →