needs to write a post on loggi…

needs to write a post on logging best practices. Hint: CherryPy is doing it wrong. Was reminded by this:

Glad I never tried anything se…

Glad I never tried anything serious with PHP

I’d rather hack than get waste…

I’d rather hack than get wasted. @rfunduk

global state is magic. magic i…

global state is magic. magic is hard to understand. don’t do that #RQ

“So far, each new definition o…

“So far, each new definition of [property] has brought us increasing material wealth.” Who is “us”? #notamajority

joinedload and subqueryload ar…

joinedload and subqueryload are just what I need. #sqlalchemy is awesome

Why we need content now

The Oatmeal published a comic on the topic of Big Content and the hypothetical conscience battle that is waged on the shoulders of those who contemplate and engage in that despicable modern practice we call digital piracy. I will not directly weigh in with my thoughts on the legality of piracy here—that has been discussed ad-nauseam, and you need to hear one more person say the same thing one more time like you need to puke the bile from your reeling stomach. But there is a point that came to mind as I read Andy Ihnatko’s rather confused response. I think The Oatmeal implied it, but Andy totally missed it. It is the reason we need the content, not in two weeks or three months or one year, but NOW! Socially there is value in seeing something that other people value, and, most importantly, seeing it when it’s hot. The news producing side of Big Content knows this so well they drive to the ends of the earth to get the scoop…first. Once a story becomes popular you can bet that every major news outlet will have their own take on that story, and not in two weeks or three months or a year, but NOW!

Content is only valuable in a social context. Let me rephrase that. Nothing you do has any meaning except in how it affects the people you relate to. Not one thing! You could make some pedantic argument about the more mundane parts of life such as what happens in the toilet, but really all that is done to support and sustain the primary purpose of life: relating to people. We humans construct and derive meaning in our lives through our relationships. When we stop relating we are dead.

So content is only valuable in a social context. Furthermore, social context is temporal. What is en vogue today will likely be out of style tomorrow. When I consume content, especially popular entertainment content like Game of Thrones, is immensely important. Aside: I hate TV, so I try not to spend my time watching it, but I’m not like most people, and I think my opinion on TV is irrelevant here. The point is that the content is more valuable to me if I watch it around the same time that my HBO-subscribing friend has seen it. Then we can have fun discussing our favorite parts over lunch. It’s possibly even more valuable if I watch it before she does. Then I get to talk about how great it is and how I think she really needs to watch it too. Soon. Before I’ve forgotten why I liked it. Technically, in doing this I am mediating a desire in my friend, which is a key part of the human relational dynamic. This is how we make meaning for ourselves and for each other.

The fact that Big Content companies think they can roll out these shows to their various markets on their own time-frame shows how they are totally clueless about what is happening in the world today. We live in a digital age where communications take seconds to cross the entire world. We’re well beyond the 1970’s when carefully planned phased release schedules were acceptable. Previously geographically distant markets had little or no knowledge of what other markets were seeing. The members of those markets, even if they knew what was playing half a world away, certainly had no way of easily getting that content. Today it is different. A kid in New York can record a TV episode with his DVR and send it to Hong Kong the very same evening. Big Content has a lot of catching up to do to compete with that type of availability.

You see, there is just no way people will wait anymore. The value of having the content now is too high, and the value of having it later is dwindling fast. If everybody is talking about it today, it will be irrelevant by the time HBO releases it for online streaming in two weeks or three months or a year.

Why PyPy / RPython is interesting

A long, worthwhile read:

Including this astonishing and too-often accurate comment about TDD: “tests are a poor substitute for documentation, typically combining a wealth of low-level detail with a lack of any obvious high-level intent.” This probably has more to do with the constraints under which the test was written than it does with TDD in general. Given the inherent difficulty in writing a test that, in addition to verifying program correctness, is also suitably clear to provide documental value, it is not surprising that most developers favor correctness since the benefit of documentation is not usually realized as quickly.

let other people be right and have their way as much as possible

A better git stash

Jon of saintsjd recently wrote a piece on improving the git user interface. This got me thinking about one of my git peeves.

git stash needs another sub-command. Often I want to stash ALL unstaged changes, including new (not yet added) files. This is almost possible with git stash -k, except it does not stash new files, which is very important.

Enter git stash unstaged. So now I’ve stashed the unstaged changes. That is, I’ve stashed all the changes I do not want included in the next commit. I can now run my tests as I always do before I commit… That’s what you do too, right? Oops, the tests fail because I forgot to add a file, which now happens to be in the stash. At this point I do not know of a way to get my stashed changes back exactly as they were before I stashed them, that is, unstaged. It’s really bad if there are some files that are partially staged (i.e., only certain hunks were staged), because they will create conflicts if I attempt to apply the stash right now. This should be possible. There should be a way to get things back exactly as they were before I stashed them. The missing command is git stash pop unstaged, which applies all of the changes from the stash and puts them in the unstaged (off-stage? pre-stage?) area, without conflicts.

In summary:

  • git stash unstaged – stash all changes that are not currently staged, including new and removed files
  • git stash pop unstaged – pop the top stash as unstaged changes

This would greatly improve my workflow when I get over-zealous and start changing more than I want to commit at one time (happens all the time). It would make it much easier to isolate those changes into individual, logical commits.