Being ruthless with your attention can be a hard act to pull off without appearing rude.
HN user
wyw
According to the Wikipedia definition of ORM, it's primarly about the mapping of types:
Object-relational mapping (ORM, O/RM, and O/R mapping) in computer software is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages.
Usually the ORM has some notion of "associations" between models so that the data relationships are easier to navigate from the application side.
Yes, a mismatch exists and can lead to compromises as you try to use the object paradigm to glue the two layers together. But the benefits are also undeniable, primarily that of productivity gained during development by not having to concern yourself with the job of mapping types between the two layers.
In what respects is the Vietnam analogy less meaningful than the rather banal battlefield analogy that you just made?
Maybe they didn't compare tough problems to Vietnam but my point was that good teachers often have a knack for translating difficult-to-grasp abstract concepts into the familiar and the concrete. Some people look down on such teachers and accuse them of dumbing things down. I would say on the contrary that the job of a teacher is exactly to dumb things down.
Most client drivers/libs for RDBs have basic type conversions for each language. You don't always need an ORM for this. If you have a ruby or python Time object, the low level db lib generally will convert it to/from the RDB format.
Didn't know that. If that's correct, then the low-level db lib is an ORM in Python. In which case SQLObject/SQLAlchemy probably just harnesses those features and adds some additional cream on top.
You mentioned a "common approach". Is this the approach that you use or have you found a better way? The reason I ask is I don't quite understand how your description above correlates to an ORM type-mapping system. Customer.find() returns a customer which contains your dict. I don't know python but I assume a dict is a type-less hashmap. So if your customer has a field called 'updated_at', wouldn't you need to write a function to convert that type appropriately for the application since the application doesn't know whether it's a Date, Datetime or Timestamp?
If anyone could be accused of linkbaiting it would be Neward since he wrote the original article titled "The Vietnam of Computer Science". But I think it's less useful to think of the war analogy as linkbait than as a didactic tool to bring attention to aspects of ORM use that Neward wished to highlight. Creating effective analogies is the same strategy used by good teachers the world over.
I think the comparison to Vietnam makes sense as an analogy.
The basic argument seems to be that each ORM imposes limitations specific to that implementation which may result in the developer's choices being limited later on in the development process - just as early strategic decisions in a war can predetermine the outcome and potentially result in 'quagmire'.
It's an argument that seems to echo Joel's idea of "leaky abstractions", i.e. the ORM is just a big leaky abstraction and you have to deal with the leaks sooner or later.
How do you map the types if the rows are returned as dicts? Doesn't that become an application responsibility? By using an ORM you would not need to build that functionality, i.e. reinvent the wheel.
Did you consider using SQLObject or SQLAlchemy? If so, I'd be curious to know why you decided against using them?
Going there now.
Excellent points and very well said. Recently I have been starting to feel down about myself and I noticed that it had to do with reading Hacker News and estimating my value through the lens of this startup value system. Despite the obvious talent and intelligence in this community, as you pointed out, if you are constantly face to face with a value system that is at odds with yours you will either (a) decide that it is not for you and walk away or (b) if you are of a more impressionable mindset, you may start to wonder why you don't match up. In my case, I have been finding the latter, at the expense of my self-esteem. So perhaps, as you suggested, I should take a break from HN for a while, as seductive as it is both in terms of content as well as the quality of the discussions.
Thanks for articulating that so well.
But _why's contributions are largely irreplaceable.
Sadly this is not true for anyone.
I appreciate that you say that because I do find it troubling that some people here seem to suggest that unless you are willing to take the kinds of risks involved in doing a startup, you are not really living or actualizing your potential.
It's the attitude that if you work in a company you are just a wage slave and a drone.
It's an attitude that expresses a value system which places a premium on achievement and 'Success' and is not so different from the value system of certain people inside the corporate world who are desperately clawing their way up the ladder to prove something to their peers, their neighbors or themselves.
I don't begrudge someone their ambition to do that if they want to but what I do resent is when someone tries to make me feel that my choices are somehow less if I'm not willing to 'step up'. It all comes down to what you value more.
Yes. Something exactly like that. Thanks.
One thing I disagree with in the article is the premise that people get real jobs because "it's the default thing to do". While that may be true, it's also true that a regular job is simply the most likely way that you are going to make a secure living over the long run since most startups fail.
If your job "fails", you can always get another one and make close to what you were making before. And especially if you work in tech, nothing about what has happened in the economy recently has really changed this reality.
But if your startup fails your next startup is also likely to fail - less likely than the first time perhaps, but still more likely than not.
What kind of storage costs would they be paying for all that binary data? I'm guessing they're using Amazon Simple Storage, which is not expensive, but in that kind of volume I'm sure it adds up. Great idea, though. Thumbs up and best of luck.
Except for a couple of typos ('are' instead of 'our'), this is an extremely articulate and informative statement which will no doubt help them justify this decision to future funders or employers. Very impressive.
From the "Rules":
This competition is open to anyone with a Twitter account who is at least 16 years of age ... You agree to allow InciteBot to share your personal details with affiliated companies. Basically, you agree to let us submit your application to the employer.
Even if I'm a 16 year old twit?
This is a great idea. I've often wished that pg's original ideas article was updated more regularly but your suggestion would be a nice alternative to giving pg more work to do, especially given how poorly we pay him.
It seems the assumption is that after you make a comment you are actively checking the thread for some time afterwards. Perhaps this works here because of a correct assumption about how people use HN but a time-constrained lifestyle might prevent this in some other groups.
Indeed. Given that we are not immortal and have finite time, we have to make sacrifices somewhere. I have a friend who has opted to sacrifice his health, social life and romantic life for his intellectual and career ambitions. It's always an option but I don't like what I see.
You say you have a day job, make regular open source contributions, have a girlfriend, a social life and not much free time. Sounds like you've got things figured out pretty well as it is.
I would mostly stick with the current plan if I were you. Maybe you could pick up some scientific textbooks to read during your commute or during a lunch break. But it sounds like more than that could negatively affect your work/life balance if your description is accurate.
I might want to modify it after one hour for the same reason I might want to modify it after one minute.
Perhaps I'm not checking HN regularly that day and make an offhand comment. In that case, if I come back a few hours later and recognize a boo-boo, it would be nice to be able to correct my mistake to avoid a permanent record of my foolishness.
Upvoted for the title. The article not so much.
Marcotte's study says income increases by 20% after a suicide attempt but his support for this figure is the following:
"Once you attempt suicide you suddenly have access to lots of resources: medical care, psychiatric attention, familial love and concern that were previously expensive or unavailable."
Last time I checked, that's not how we define income unless he's saying that this additional support is what's driving a concomitant rise in income.
This finding is the opposite of what I would have expected - namely that the more serious the encounter with death, the less seriously the would-be suicidist would subsequently treat the pursuit of material success.
Unfortunately the study seems to be behind a paywall so we can't figure out whether methodological flaws have produced these results.
I'd like to second that. Unfortunately we can only vote once. But this talk is now tied with Jill Bolte Taylor's as my favorite Ted talk. Thanks for posting.
This talk is derived from his book "Status Anxiety" as is the documentary of the same name which is available on Youtube in low quality:
"Communist China" is not some dark gulag where people are beaten while walking down the street for having vaguely pro-democracy thoughts or something.
Correct. They're usually dragged into an alleyway first.
"Fess up" is an interesting suggestion but I'm pretty sure that would not go over well in an interview situation even with many employers who otherwise would be good to work for. Admitting weakness in an interview is generally just giving the other side arguments to use againsnt your candidacy with very little upside. In some rare cases you may find someone empathetic but I doubt it's worth the risk.