2,206 karma · joined February 26, 2012
> The good news is that SimCity is a solid hit in
> all major markets
In other words, "Don't worry guys, I know this looks bad right now, but we're making plenty of money so it's okay". Gotta put something in there to reassure the investors, I guess? > I know this may fall on deaf ears, but couldn't you
> people join forces and create ONE open-source office
> suite
Most people have already joined forces to create one open-source office suite. It's called LibreOffice. As far as I'm aware, the vast majority of developers who used to work on OpenOffice now work on LibreOffice.OpenOffice is a brand that survives on the fumes in its fuel tank. I still occasionally catch semi-technical people (tech management types etc) recommending OpenOffice, but invariably it's because they haven't heard of LibreOffice and were unaware that it's the default in most distros these days.
if self.ssl:
relay_host = smtplib.SMTP_SSL(hostname, self.port)
else:
relay_host = smtplib.SMTP(hostname, self.port)
Half the constructor parameters and the entire configure_relay function could be ditched completely if this class stuck to a single responsibility and instead allowed the configured smtplib object on which it depends to be injected.Here's some more comments from that class:
def send(self, To, From, Subject, Body):
"""
Does what it says, sends an email. If you need something more
complex then look at lamson.mail.MailResponse.
"""
Look at that comment: "Does what it says, sends an email". It's a terrible comment. The method should be called send_email, and that sentence should be deleted.This codebase is a poor example of how to use comments, overall.
def process_message(self, Peer, From, To, Data):
"""
Called by smtpd.SMTPServer when there's a message received.
"""
The above comment simply reiterates what happens in some unknown distant piece of code. This is a classic example of bad commenting: somebody could very easily change the behaviour of the referenced code without updating this comment. // set the user data
var userData = {
The thing that grates with me is that this is apparently an acceptable stance on the issue. These people don't see this inability to read plain code as a flaw, or something they should work on.Dependencies between components should ideally be as explicit and as few as possible. Dependency injection is one good way of achieving this, but even global variables or singletons are more clearly self-documenting than exceptions. A piece of code that returns a value or makes a call to some functionality in another piece of code is easy to understand. If instead, that code throws an exception, then it sends the reader on a voyage of discovery throughout the codebase to investigate all the places that catch this type of exception, and which of those pieces of code can ever potentially be higher in the call stack than the piece that throws it.
The only reason we even put up with such complexity in the case of handling errors is that it is the one problem that is ubiquitous to every piece of software ever written and therefore merits its own first-class language support.
An example of misusing exceptions for control flow in this context would be throwing a "caching exception" to indicate that a cached version of the requested resource has been found and is to be returned to the client without any further processing.
> Argument by meaningless blither. What distinguishes
> “exceptional conditions” from “control flow”? I have
> reached the end of a million element list. This
> happens one time in a million! That sounds pretty
> exceptional to me!
Unless you were expecting the list to have infinite length, then this would be a misuse of exceptions. The true logical fallacy here is the author of this post's argument from personal incredulity. The fact that he hasn't yet learned how to distinguish between exceptional conditions and control flow doesn't mean that it's an impossible or meaningless distinction.I think this blog is an egregious blurring of the line between content and advertising. I urge you to go and look at its archive of posts. Every post somehow contrives to include at least one Amazon referral link. Svbtle is a business looking for a long-term business model, and I sincerely hope this isn't it.
Referral links in book reviews are a problem because of the conflict of interest they create. If the author of the review chooses to put a referral link into it, they create a financial incentive to bias their own review in favour of the book. Rather than a means of helping people determine which books to buy, reviews become a hollow call to action with a conversion rate measured in referral dollars. A review with a referral link in it has absolutely no credibility.
On top of that, they call the very purpose of the review itself into question. Is the author of the review really reviewing anything at all, or are they simply writing reviews as a means of generating cash? This particular blog is brimming with glowing reviews of Javascript books, each with Amazon referral links inside. Are there really so many must-have Javascript books on the market? If so, do we really need the dubious help of a blogger to find a good one?
This is a really killer piece of kit though. I'm very impressed. It's something I think many of us have idly imagined when struggling to determine a good starting price for a new eBay auction.
It may well be true that it's easier to enforce cultural homogeneity on colocated teams, which makes it easier to treat individuals as interchangeable cogs that can be transplanted between different parts of the wider machine.
Whose interest that's in is an interesting question. It's a obvious win for the employer. And employees who want to work for an "apex predator" employer are better off because in their case, utility for the employer is utility for the employee.
The point of the 37signals post is that only "apex predator" companies like Google can legitimately demand this sort of dedication. Given your statement that you actually work at Google, I think perhaps it makes sense that your opinion is what it is.
My point - to sum it up - is that productivity and cultural homogeneity aren't the only important metrics to optimise for.
In this sense the electronic industry has not solved a
single problem, it has only created them, it has
created the problem of using its products. To put it in
another way; as the power of available machines grew by
a factor of more than a thousand, society's ambition to
apply these machines grew in proportion, and it was the
poor programmer who found his job in this exploded
field of tension between ends and means.
This is a beautifully succinct and profound summation of the entire history of software engineering. I enjoyed this all the more because I initially skimmed past the introductory page and have only just realised that Dijsktra wrote it. As an aside I would like to insert a warning to those
who identify the difficulty of the programming task
with the struggle against the inadequacies of our
current tools, because they might conclude that, once
our tools will be much more adequate, programming will
no longer be a problem.
I think this is as true today as it was 40 years ago. In fact it almost makes the idea of "No Silver Bullet" seem derivative.Last time I saw it manifested in this particular form, it was Zed Shaw's "Premium Branch Manifesto" (http://premium-branch.org/) in which he breathlessly warned of impending doom:
> If this balance of power is not corrected I
> fear FLOSS will actually die.
I think it's kind of sad that so many people apparently don't see one of the main things I find so amazing about free software. We're a community of people who give stuff away to others for free often for no other reason than the fact that building it is fun enough in itself. This is simply not a thing on this kind of scale in most other professions, and I feel a little defensive when somebody says we should put a stop to it.I used to have , remapped to <leader> but switched back when I realised what I was missing out on. I'd advise anybody else to reconsider if they've made the same mistake I did.
If everybody on the web were using this tactic it would be a valueless platform. The only rational reaction, then, to those that use it, is rejection.
1. Open blog post about readability.
2. Notice that text is unreadable without zooming in.
3. Close blog post about readability.It was a PR disaster for Microsoft as far as the geek community was concerned and they eventually pulled the plug. I can't believe anybody in Redmond actually gave the green light to bring this slogan back. This type of aggression just makes MS look like smug pricks.
The only thing I would change is the overuse of bold text. When used too much, it detracts from the readability of the text as a whole more than it serves to emphasise any particular sentence fragment.
> The average man has no more power than the average woman.
Can the average woman apply for any given technical position with an equal chance of being interviewed by a person of her gender? When the average woman's colleagues organise a social event outside of work, does she feel as powerful as the average man when she's the only female in a room full of inebriated men? When the average woman's colleague accidentally says something sexist and nobody else notices because she has no female colleagues, is she as powerful as the average man?I'm a Vim user myself, and a big fan of his work. It's not nice to mention his name in a thread like this, however tangentially related. But given the topic, I thought for once it might be forgiveable to err on the side of those without male privilege.