515 karma · joined February 17, 2008
My main project these days: https://togetherjs.com
My homepage: http://ianbicking.org
Blog: http://ianbicking.org/blog/
Projects: http://ianbicking.org/projects.html
A lot of Python in the past, mostly Javascript now.
Resistance to DDT has formed anyway: http://en.wikipedia.org/wiki/DDT#Mosquito_resistance – though again this is because of agricultural use, not from disease prevention use.
On the other hand, it's not that clear to me that DDT has actually been discarded?
Even in Javascript traditional templates have seen a surge in popularity, even though push-style templates have always been the more natural way to operate (in the case of Javascript, modifying the DOM directly).
People do stuff like this all the time in the U.S. – this is performance art, and no more intrusive or offensive than typical performance art, and those people don't go to jail. And Alabama churches aren't some otherworldly place.
Maybe so. I for one have been reminded that the Russian president is evil.
And yeah, these companies don't "owe" us anything, but consumers (even the subset of developer-consumers) can still get pissed off at them and say shit and that's the fucking market. And maybe it won't mean anything, maybe it'll all fade away... and maybe it won't. That's the risk those brands are taking. It's our market-based prerogative to bitch about whatever the hell we want to bitch about, using whatever hyperbole we want, with any sense of entitlement that we've acquired.
If someone starts sending mail bombs to these companies because they aren't tending their APIs as we'd like, then that's coercion. But there's no coercion here, this is just people offering their opinions. So quit yer whining about our whining, the internet has entitled us to whine as much as we fucking want to, and has offered market-based ways to lift or bury that whining.
But yes, just use socratic_{name} – it makes everything easier, and "." and "_" are just string differences. The only good reason IMHO for using namespace packages is because you are breaking up an existing package into multiple packages and you want to keep the dotted names. And even then I might just prefer a compatibility package that does the mapping and move things to entirely new package names.
That this functionality still doesn't exist years later I think is due in part to the problem domain – people find it easier to change parts of their workflow than to add this functionality, and the whole problemspace is kind of hairy which makes it hard to advance without causing regressions in somebody else's weird workflow. (And admittedly the code is hairy too – but who wants to fix that? I don't! No one does!)
This is demonstrably true in that Rack/etc are themselves almost always built on top of conventional socket-based streaming APIs. Streaming APIs have been the norm, and yet people choose to put abstractions on top of them. Why? Mostly because it gives substantial improvements to application code, and turns the system into more of a set of contracts and less of a mushy touch-any-object-you-want system, which I think is fundamental to how streaming works, due to its imperative nature.
Using Rack or any of its equivalents, it would be fairly easy to allow a hole to be punched through the system to give a direct socket streaming API. Just toss the relevant objects into the request. It would violate the abstractions of Rack, any middleware, etc. But you can do it, and it would be easy. It's not unlike using Rack instead of the abstractions Rails puts on top of it – arguably it can be useful shortcut parts of the stack.
Why don't people do this? Mostly because no one cares to. It's not that useful or interesting or testable. It's noticeable enough that people complain about it, but not noticeable enough to be worth it to take the hit and use a more imperative API.
Requests certainly adds a lot of stuff, some that is below WSGI (e.g., Keep-Alive – WSGI specifically avoids that level of transport), a bunch of stuff that is more stateful (the session stuff), and a bunch of stuff that just felt like it was moving around too much to put in WebOb (e.g., OAuth).
That said, there's nothing keeping a client library from adding that. TransparentProxy for instance could instead be something that handles pipelining and statefulness, and perhaps also acts as a request factory. WSGI is rather helpful here because it does not try to touch those parts – it leaves things open for other tools to take control there. Also to make a better client library you could subclass Request and add functionality that is handy but hasn't been added to WebOb (WebTest does this for functional testing, as an example). Auth probably fits in there. Redirect handling could go in there somewhere too. But if you always redirect transparently then you've made permanent redirects useless.
WebOb itself certainly isn't a client library, its scope is largely limited to representing HTTP requests and responses. But if you are looking for HTTP-related tools, it has a lot of them.
That was one really great toy.
I think simple dated releases would be an improvement (e.g., Firefox 2011.1, 2011.2, etc., or tag them based on month, this one being 2011.10, or 2011v2 or whatever.) But that's basically just a PR move. There's no longer anything really like a point release except in the case of regressions that demand an immediate fix (as happened with Firefox 7).
I would worry that a committee organization will be too conservative and technocratic. That is not an inevitability, of course; if the committee understands the importance of publicity maybe they can delegate appropriately... but it's not something a group of people can really do well together.
But authority only works if you use that authority to do the right thing. Unity isn't doing that. I am in part frustrated that Unity got _worse_ with the latest Ubuntu release, and I'm frustrated that it has lots of bugs, and the interface is neither traditional nor discoverable. But even worse than these problems is the problem that Unity isn't pursuing a worthy goal. It's a rethinking of how you manage applications and files on the Linux desktop, but the Linux desktop has never been particularly functional or filled out and it falls behind further with time. The major trends we see is the desktop spiraling in on a single application, the browser, and files and media moving to the cloud. Unity is messing around with something that will never win the hearts and minds of new users, while it alienates what users there already are. I've never met someone who loves Unity! There's a couple people who accept it, and a much larger group that hates it. (Personally once I figured out to install gnome-shell I can like Ubuntu again, but Unity really did almost push me over the edge to get a Mac.)
It's not to say that a rethinking of the Linux UI is an entirely useless endevour, but Ubuntu and Canonical should not be pursuing a fantasy of a rich ecosystem of GUI apps. There are maybe a dozen relevant applications on Linux now, and that number will only get smaller. But the beauty of this is that if you just pursue an experience that encompasses those dozen applications, and you dive deep into those applications (which you can because they are all open source!) then something really neat could come out of that. I think people could get behind an idea like that, even if those same people simultaneously felt annoyed with particular changes that came from that. But it's hard to look past those problems when it feels like present usability is being compromised for a misguided fantasy.
Medically there's a tone of what-doesn't-kill-you-makes-you-stronger, which is kind of bullshit. Malaria might not kill native adults very often, but it is not harmless.
And economically, the argument is similarly patronizing. After going on about the native immunity many people have, it then talks about how economic disruption is causing migrations, leading to people (not just whites) who don't have the immunity to be exposed. The response: people should stay in their place. That the prerequisite for solving any problem is to revert to traditional structures and strengthen those structures (the same basic argument is made about poverty and many other African problems). The idea that Africans may in fact wish to have control of their own personal destiny is disregarded -- that if conditions were better, if economic forces were less manipulative, people might still want to migrate, because the drive to better one's life persists even when life is okay.