sheriff's comments

sheriff | 5 years ago | on: Eddie Van Halen has died

I play both guitar and pedal steel. The tapping techniques that would be used on a horizontal 6-string guitar would be impractical on a steel guitar (lap or pedal) because the action is too high and there are no frets.

sheriff | 5 years ago | on: There Are No Bugs, Just TODOs

It's odd to me that the proposed Minimal Skeleton for tracking a bug doesn't include:

* who reported the issue * what they reported happening * what they expected to happen instead

For many reported bugs, it is clear what the actual problem is and what needs to be done to resolve it. In this case, it can feel like unnecessary overhead to track the bug in a separate system from the rest of the development work queue.

But it's worthwhile to have a place to track bug reports that can't yet be acted on by writing code. Sometimes it's not immediately clear what is happening or what should be done about it. Sometimes you need to reach out to the reporter(s) for more information or to let them know progress has been made.

Even with well-understood bugs, there can be a many-to-many relationship between the bug and the development work to be done. Sometimes you have many people reporting the same issue in different ways, and it's not initially clear that there's a shared root cause. Sometimes one bug report is best addressed in multiple phases of development work.

I'd argue that there's always someone who's managing all of the above, even if they're not using separate bug tracking software to formally do so. But as a team grows, making the investment to "show your work" a little more can make it a lot easier to collaborate and delegate.

sheriff | 8 years ago | on: Git, Graphs and Software Engineering

An example of what I'm thinking about, which I don't think Darcs can do (I'd love to be wrong):

Alice and Bob both branch off of master at the same point. In Alice's branch, she moves function `foo` into a different module/file. In Bob's branch, he changes `foo` to handle a new condition. Both wish to merge into master.

Whoever merges later is going to have a merge conflict, and have to resolve it manually, using their human understanding of the semantics of both changes. It's clear to me how that conflict should likely be resolved, but as long as those changes are presented as text diffs, I don't expect my VCS to be smart enough to figure that out on its own.

It would be interesting to explore other ways of representing changes, such that a computer would understand how to compose them in more situations like this.

You can quickly come up with examples of changes which conflict in a way that should probably always require human intervention: Say Alice and Bob each wish to assign the same constant to different values.

So, I don't expect that you could completely remove the need for developers to manually resolve tricky conflicts. At least, not without completely changing how we express changes to programs, which may well be a non-starter for practical purposes.

sheriff | 8 years ago | on: Git, Graphs and Software Engineering

I'm unfamiliar with Darcs, but thanks for calling it to my attention. Based on a quick look, it appears Darcs uses text diffs, so it's not quite what I'm talking about, but it's definitely interesting.

sheriff | 8 years ago | on: Git, Graphs and Software Engineering

I came here to post something similar. I'll add that many of the hard things we do with Git seem to do with re-ordering or re-combining of the underlying changes. If we want to make it easier to reason about changes to a set of changes, then I think we really want those changes to have some properties which they don't currently have.

It's powerful for Git to treat changes as line-by-line text diffs, because it allows us to manage changes to any textual data. But what if, instead, we borrowed an idea from distributed databases, and implemented all changes as commutative operations on a Conflict-free Replicated Data Type (CRDT)?

I think almost every example of difficult rebasing would get significantly easier, but at what cost? We'd have to completely rethink how we write programs, because this would drastically limit the types of changes to a program that were valid. I wouldn't be surprised if this would require us to develop in entirely new languages.

There might be some meat to this idea, but again, I don't think we'd get there by mining existing Git graphs.

sheriff | 9 years ago | on: Deficit shrinks by $1 trillion in Obama era (2015)

This article is from 2015, and as a result, that is the last reported year.

I found a more up-to-date data set at http://federal-budget.insidegov.com/ which is consistent with the reported years, and includes both earlier years and an estimate for 2016. Unfortunately, it seems the deficit is growing again, with an estimate of -$616 billion for 2016.

It's also worth looking at earlier years -- nothing before 2009 was higher than $464 billion. Looking at a longer timeline, it seems clear that the general trend is towards a bigger deficit, but the impact of the subprime mortgage crisis means we can play games with statistics by framing our timeline around that year.

This is similar to the trick used by Ted Cruz to argue against climate change, by insisting on presenting the data on an 18-year timeline, so that it would start in 1997 and include that year's abnormally high temperatures caused by an El Niño weather pattern.

http://www.cbsnews.com/news/fact-check-ted-cruzs-claims-abou...

sheriff | 9 years ago | on: New Cities

I think one of the big problems with cities is how static their layouts can be. Many years from now, I like to imagine that cities will be made of movable parts that can be rearranged throughout the day to take match the changing needs of the people.

For instance -- there's no need for me to sleep in an expensive part of town, but there's also no need for me to be awake while my bedroom is shifted out into the outskirts. This would be something like Bruce Willis' character's apartment in The Fifth Element, but I don't think we have to wait until we're building cities in space to start working on this.

Similarly, if there's a diner that closes after 3PM, why should I ever have to walk past its empty storefront later in the day? The popularity of food trucks is evidence that there is value in being able to move supply around to find the demand and that we can reorganize our cities on a short time-scale. We don't even need to wait for the parts to be self-driving, as nice as that would be.

sheriff | 10 years ago | on: Hiring Is Broken – My interview experience in the tech industry

Here's an O(N) solution to the `findSum` problem in Ruby:

  def findSum(array1, array2, sum)
    complements = array1.map{|x| sum - x}.reverse

    i = complements.count - 1
    j = array2.count - 1

    while i >= 0 && j >= 0
      return true if complements[i] == array2[j]

      if complements[i] > array2[j]
        i -= 1
      else
        j -= 1
      end
    end

    false
  end

sheriff | 13 years ago | on: Why I now, unfortunately, hate Hacker News..

I think there are two distinct use-cases for posting to HN, and I think the OP's pain can be partially connected to the fact that both types of posts get treated identically.

The first use-case is "Person A discovers Thing X on the Internet and wants to discuss it critically with the people on HN."

The second use-case is "Person B wants to share Thing Y that they made, in hopes that the people on HN will give positive feedback."

As a reader, you can choose to treat the two types of posts differently, but without a conscious effort, I think the default behavior is to use a consistent approach to all posts on the site. The result is that either real industry news doesn't get reviewed very critically, or personal projects get reviewed more critically than the poster would have hoped.

sheriff | 14 years ago | on: You half assed it. That is why your PhoneGap application sucks.

Purchased this to check it out, since I couldn't figure out how to use the vouchers.

Thanks for posting this example. It's pretty responsive... not sure if I would have known it was PhoneGap.

One bug report: Divide-by-zero seems to act as if nothing happened, rather than reporting an error or NaN value.

page 1