PhilChristensen's comments

PhilChristensen | 16 years ago | on: Get Your Fucking Feet Off The Table

Get a ticket how? Because you let your dog crap openly on the street while a cop was watching? What kind of disincentive is that?

I live in the police state of New York City, and yet on my block alone I regularly have to dodge between 4-5 piles of crap every time I walk down it. Not even by the curb, right in the middle of the sidewalk.

In fact, I was kind of surprised Zed got so worked up about SF fecal matter. Although it seems like there's slightly more human excrement around in SF, the shit-factor in his previous home is pretty competitive with SF.

Or maybe Zed wanted to assert passive aggressive dominance against SF by 'talking shit' about it (yow!)....

PhilChristensen | 16 years ago | on: In Changing China, Being 'Suicided' or 'Harmonized'

I had a hard time understanding this article, but it was really due to translation issues, and my own lack of understanding about grammar.

I had to read up on the English concept of active- versus passive-voice. For example:

  The cat ate the mouse.
is active, because the cat is the subject of the sentence, and is doing the eating.

  The mouse was eaten by the cat
is passive, because the mouse is the subject, but is "having something done to it", i.e., passive.

So in the case of "He was disappeared", the point is that you are implying that he did not make himself disappear, but that it was done to them.

However, in Chinese, the language is so flexible that there are many far more common ways to express the same concept. So when someone specifically uses the passive voice in this way, while it is grammatically correct (or at least, is a grammatical invention that follows existing rules), it is obvious to other Chinese-speakers that it's an unusual way to say something.

The examples given start making more sense when you forget about the fact that "suicided" isn't a real word. It's not supposed to be a real word, instead it is meany to be a translation into English that preserves the 'strangeness' of the phrase.

In the case of the Chinese, use of the passive voice in this way is kind of like a shibboleth in that someone who agrees with your politics will know what you really mean, but you still have plausible deniability for those that don't.

PhilChristensen | 16 years ago | on: IPhone app that isn't

I'm particularly irritated with the distasteful attitude the author took when he was mad a couple of hacker news readers didn't think it was fair to charge $0.99 for this.

PhilChristensen | 16 years ago | on: Adobe, Apple, and Flash

"If there weren't real fundamental problems with the security, stability and performance of Flash I don't think we'd be having this conversation at all."

But that always seems to be the way one technology gives way to another, because it improves on various aspects that were lacking in its predecessor.

I think an apt comparison is RealMedia versus RTSP audio streaming. RealMedia had a significant market share (for the time), but the mishandling of the product led to people finding/building/demanding better tech.

It's arguable whether Adobe is mishandling Flash at the same level, but Flash could easily go away in favor of HTML5 and Javascript.

The only thing lacking right now is the tools, and the Flash IDE would not be difficult to improve upon. On top of that, there's already precedent in the Palm Web OS IDE. Make a similar kind of interface for building easily deployable standards-based web applications, and Flash could end up as a bad dream faster than you think.

PhilChristensen | 16 years ago | on: Pros and Cons about Python 3

Could you (or anyone else) elaborate on the issues with super() as described in this article? I'm having a hard time understanding what's going on between the complex details of the problem and the author's cumbersome syntactic choices.

PhilChristensen | 16 years ago | on: Table Oriented Programming

I'll admit that I didn't read this article particularly thoroughly, but how did he get through an entire overview of 'Table Oriented Programming' without mentioning Lua?

PhilChristensen | 16 years ago | on: GoogleBot as QA tester

I think you should reconsider those statements.

Just because you wrote it doesn't mean it's doing what you think it is.

And users really can not be counted on to report errors. Even if they do, the average bug report reads something like "So I put in your address into the google, but when i got there nothing came up! I tried over and over, but every time I clicked on the google, nothing happened! I asked my brother's boss' kid, who's a real whiz with computers, and he told me I should 'eat my cookies' or something, but I'm lactose intolerant!!"

PhilChristensen | 16 years ago | on: Drupy: "Drupal" in Python

This is interesting, I had an idea to do the same thing years ago. I ended up just taking a few of the really nice things from Drupal, and making a new framework around those.

I loved Drupal when I was limited to building sites in PHP. It worked around a great deal of common problems in PHP, and was well documented with a good community, etc...

Still, most of the advantages came from having a semi-regulated environment to use to implement CMS projects in PHP. Once you have a sane language like Python, it would be a huge waste to do a direct port. The result would be profoundly unpythonic, and give you no particular benefits because of it.

If you adapt it to make it more pythonic, then you lose the benefit of familiarity for new users. As it is, it's not really like you'll ever be able to use existing Drupal modules in a Python reimplementation; even if you could, it's hard enough keeping modules working across different versions of Drupal, much less entirely different platforms.

PhilChristensen | 16 years ago | on: My tech talk on Tornado (video and slides)

If there is honestly nothing that does what you need, fine.

I'm just saying the NIH-syndrome is a big problem for the FOSS community, and leads to the fracturing of attention. Far too many talk a big talk about how collaboration is the key to FOSS ('a million eyeballs', etc), but then turn around and start their own project in solitude. Sure you can learn massive amounts -- but how much of that time is spent making the same mistakes someone else already made?

I'm comfortable with telling a programmer "NO! Don't write your own," because I know if s/he really wants to, nothing I say will change that. The value of getting them to stop for a minute to think if it's necessary is worth it.

Any competent programmer can write their own X. But it takes a master to help someone else's X succeed.

PhilChristensen | 16 years ago | on: Diesel: How Python Does Comet

Writing unit tests should be your highest priority. I am far from a TDD advocate, and compared to many I am terrible at maintaining my own tests, but I could never justify using an IO package that contains zero tests.

IO errors are some of the most annoying errors to debug, and the whole point of using a preexisting IO package is to not have to worry about errors in it. I would say you need 100% test coverage of your core library before I could consider using Diesel for a major project.

Just my $0.02...

PhilChristensen | 16 years ago | on: Diesel: How Python Does Comet

I'm sorry, but this post is just packed full of FUD.

I hear this all the time, "argh, Deferreds are so hard to understand," as if there's some kind of magic going on in a Deferred. Deferreds are just a way to encapsulate two callbacks, one for errors and another for successful callbacks.

If you're writing any kind of significantly complicated asynchronous process, what is the difference between following a bunch of Deferreds and following a bunch of callbacks??

Asynchronous coding is hard. There's no framework that is going to make that go away. Diesel looks nice enough, but although it shows promise, there's not enough examples of hardcore usage to make a sufficient comparison. An asynchronous IO framework that has nothing but HTTP and echo examples doesn't even scratch the surface of the kinds of apps that require the advanced asynchrony available in Twisted.

PhilChristensen | 16 years ago | on: Ask HN: Do you create music? Let's hear it!

I go back and forth between writing electronic music and performing intensely improvisational rock music. I've got a lot of my personal music on my main site at http://www.philchristensenmusic.com -- for this kind of stuff, I use ProTools as my main interface, running Ableton Live and Reason as ReWire slaves, as well as using a large number of Native Instruments plugins, particularly Guitar Rig and Absynth.

With my band seaflux, we've been spending a lot more time on social network promotion, and so although we've got a lot of linked content on our main site at http://seaflux.com , much of our material is available on our profiles on Facebook (http://www.facebook.com/pages/seaflux/27070655285), ReverbNation (http://www.reverbnation.com/seaflux), and of course of tons of videos on YouTube (http://youtube.com/seafluxmusic). Due to the improvisational nature of this band, our best recordings so far are live shows, which end up getting recorded just with a stereo mic setup.

PhilChristensen | 16 years ago | on: Twisted.web vs Tornado Performance, part deux

I question the relevance of these tests. With all the attention being given to performance, everyone seems to be overlooking the fact that Tornado provides zero support for truly asynchronous web applications written for it.

If you have any kind of long-running task to perform during a web request, you have to roll your own way of dealing with that task.

To make it worse, the demos included with tornado that make use of a relational database do all their queries in blocking fashion, which would render the server completely unusable during the runtime of every single query.

Given the fact that Twisted provides a robust API for dealing with long-running algorithms, as well as support for a huge number of other protocols, you're paying an awful lot for only slightly better performance.

In fact, in a real-world application, the performance benefit of Tornado is directly impacted by how good you are at dealing with asynchronicity.

PhilChristensen | 16 years ago | on: Tornado as your server: WSGI container lands in Tornado

okay, i give up.

explain to me how it's possible to run any significant WSGI app inside this container. wouldn't any long-running request monopolize the whole server?

i don't have a lot of exposure to other WSGI apps besides my own, but I always use synchronous, blocking development techniques when building them, including blocking database calls.

PhilChristensen | 16 years ago | on: Twisted.web vs Tornado, a Performance test

that's just not true. i use web1 extensively, and it works very well, and although it's performance is not as good as apache or lighttpd when serving raw files, it's more than adequate for most web application development.

web2 was never a formally released product, and most of the stuff that was only available in web2 (such as wsgi support) have now been backported. there was some confusion about this for awhile, but that was only ever a community issue, not a code-related one.

i primarily took issue with you calling it a "mess", i still think that's a rather inaccurate statement.

PhilChristensen | 16 years ago | on: Use of LSD-25 for Computer Programming

Unless of course, you had said LSD on some kind of substrate, such as blotter paper, or god help you, a sugar cube.

Then the 'fair government' would weigh the entire product, and charge you for posessing that much LSD, which would weigh enough to charge you for distribution, thus sending you swiftly to the nearest PMITA Prison.

page 1