Hacker Newsnew | past | comments | ask | show | jobs | submit | 2008-01-13login
Stories from January 13, 2008
Go back a day or month. Go forward a day, month, or year.

Depends what you mean by straight. Without going to the bathroom? A good definition would be: without paging the problem out of your brain. I.e. you can go to lunch, but in a sense you're still working, because you're mulling over big questions related to the problem. In most kinds of work interruptions of that sort are net helpful.

Browsing the web, unfortunately, generally does page out whatever you were thinking about. I think it is a bad kind of interruption.

The way to work for long periods on something is to be interested in it. Few to no people have the discipline to make themselves work on something that bores them for many hours straight without paging it out. Probably none of the people whose work I admire do. Their trick is to work on stuff they like. That's not as passive as it sounds, though: you can often redefine problems to make them more interesting. For example, if you have an otherwise boring piece of software to write, you could make it interesting by using it as an excuse to learn some new language or library; or by seeing how few lines of code you can write it in; or by trying to make it very fast.

I've found one sure-fire trick to make the programming interesting is to design the software as two components: a language for problems of that type, plus some code for this particular application. Defining languages is always interesting (at least for me), no matter how boring the domain is. Plus it turns out to be a good way to structure programs anyway.

Another handy trick, especially in startups, is to motivate yourself by using competition. Kicking a ball into a rectangular net is completely boring by itself, but it gets interesting when someone else tries to prevent you from doing it. With sufficient resistance, you have to become an artist to get the ball into the net. At Viaweb we loved making our software better than our competitors'. Even Robert could get excited about cooking up some new feature that would leave them scratching their heads wondering how we did it.

2.From 10 Hours a Week, $10 Million a Year - Plenty of Fish (nytimes.com)
37 points by robg on Jan 13, 2008 | 36 comments
3.Time May Not Exist (discovermagazine.com)
28 points by nickb on Jan 13, 2008 | 11 comments
4.Why Software Careers Suck (joelonsoftware.com)
26 points by drm237 on Jan 13, 2008 | 14 comments

It's really the bad clients that force you to become a take-no-prisoners mercenary consultant.

Other fun things (none of which is legal advice!):

- Never, ever, ever, sign an indemnity clause. That's basically an agreement to go bankrupt if anyone ever sues them over your work. (If they can't budge on it, due to an evil legal dept, you should research whether indemnity clauses are enforceable against employees (not contractors) in your area. If not, you can mention that they can always hire you as an employee for the duration of the project -- at your consulting rate!)

- Only fixed-bid for fixed-scope (change orders should always be hourly, and fixed bids should have at least a 100% fudge factor in your favor (same with calendar estimates). No, you do NOT mention that part to the clients. Some people recommend more than just doubling, but it's worked for me so far).

- For jobs you don't really want, try quoting a higher rate, and see if they take it! (Eventually, you'll find out what your market rate is). Pad your rate proportionally to how much you DON'T want the job. :)

- Never bid on a job from a position of weakness: there should never be a job that you NEED to have, otherwise you will get screwed.

- Bill weekly. (Never call it a bill, always an "invoice").

- Do not continue work when the client has more than a couple thousand dollars in delinquent balance due, until you're paid, or unless the client is a really good client, and you know they're good for it.

- Never subcontract for someone who's friends with the client. They will be unable to maintain the naturally adversarial relationship between consultant and client, and they'll let things slide (such as late or delinquent payments) that they shouldn't.

- More generally, avoid situations where you can't bill the client directly.

- When logging your hours, always keep good notes of what you're doing. Clients like knowing what they're paying for.

- If the client likes to call outside of normal working hours, institute a minimum 3-hours-billable for each off-hours call. Now, you can sleep at night!

- Always be professional and courteous. Never burn bridges, no matter how tempting.

- Emotion and drama are your enemies. Both your own, and your clients'. Especially keep emotion out of the picture when negotiating about money.

- Go the extra mile to keep your best clients. Weed out the bad ones.

- Don't put up with abuse.

- Always negotiate in good faith.

- Always under-promise and over-deliver! NEVER over-promise and under-deliver!


Dale Carnegie wrote about guys working in a foundry who, the experts calculated, should be able to carry 47 tons of pig iron per day, yet they were only actually able to carry 12 (or something similarly smaller than 47). Upon closer inspection, Carnegie noted that the workers took no more than a short break for lunch each day, so he advised them to sit and rest for a pre-determined amount of time each hour to renew their strength. As if by magic, the men were all then able to carry the predicted 47 tons per day, leaving employees and management quite satisfied.

Your brain is no different in its need for rest than your body. I've discovered that I need a break at about 3pm every afternoon, so I find a quiet place to lay down, close my eyes, and think about precisely nothing. After ten or fifteen minutes, I am ready to go back to thinking very hard. I've had co-workers who choose to sit at their desks all day looking very diligent rather than rest when they need it, and they are far less productive. (Of course, there are a few out there who don't seem to need to ever rest, and they're much more productive than I.)

You're not being paid to log hours; you're being paid to accomplish something. If you meet or exceed your employers' requirements for you, then they are getting their money's worth.

7.LAMP performance tips: I've spent the last 6 months combing Google for 'slow mysql'. It was enlightening (ghastlyfop.com)
22 points by nickb on Jan 13, 2008 | 3 comments
8.Noble or savage? Hunter-gatherers (economist.com)
19 points by zoltz on Jan 13, 2008 | 3 comments
9. What PHP Deployment Gets Right (ianbicking.org)
18 points by nickb on Jan 13, 2008

first, find a job you enjoy -- the tech job market is good enough now where you can afford to be selective (at least in the valley/other tech hubs) -- ideally, something that you would find exciting enough to do even if you weren't getting paid, as the cliche goes.

second, i think it's common for developers to get the equivalent of writers' block when the upcoming task is large and/or poorly defined. some things that have helped with this:

- tricking yourself to take on little pieces of the bigger project (google 'structured procrastination' and hamming's article on productivity); carving out explicit "next steps" (without dependencies) that you can start on now

- writing down a plan or specs to at least get things on paper/into your editor to bring clarity to a jumble of random thoughts

- reducing distractions; putting on headphones (esp. noise cancelling); stopping multitasking http://www.joelonsoftware.com/articles/fog0000000022.html ; also, turning off AIM (or putting up an away message plus hide windows) and your mail client's new-email popup/toaster massively cuts down interruptions

- using rescuetime (to assess the damage and/or feel guilty about screwing around :)), noprocrast on news.yc or just making a commitment to yourself to wean yourself off of news/blog sugar

lots of people have written about productivity; http://blog.pmarca.com/2007/06/the_pmarca_guid.html and http://www.paulgraham.com/hamming.html are good starting points.

but ironically it's tempting to waste a lot of time "preparing" yourself to be really productive or trying to come up with the perfect system. i think there are natural ebbs and flows in levels of productivity; a lot of the battle is detecting when you're slumping and instead of beating yourself up, try to trick yourself into making that period as short as possible.


Most interesting comment in that thread:

I have the exact same story as the OP.

I lived and breathed Paul Graham's philosophy.

I even slept in a kitchen cabinet while working on reddit:

http://www.flickr.com/photos/33809408@N00/150538078/

But eventually I fell in love with someone from work :-) and realized what I was missing in my life:

http://www.scribd.com/doc/73086/Cozy-Domesticity

-- AaronSW

12.Database of VCs: how they treat founders (thefunded.com)
14 points by eru on Jan 13, 2008 | 1 comment

I am a bit daunted by the prospect of working 8 hours straight, every day [...] 2-3 hours of real work per day [might be] more realistic.

I think part of the issue here is how you define "work". I probably spend about 3 hours a day actively writing code, but I would still say that I'm working 12+ hours a day -- the fact is that most of my time is spent coming up with ideas for how to solve problems and convincing myself that the solutions I've found are in fact the right solutions.

Lawyers understand this -- they'll bill you for time they've spent thinking about your file while having a shower just the same as they bill you for time they spend at a computer writing up legal documents. Unless you're purely a code monkey who writes code according to directions and never thinks about what he's doing, there's nothing wrong with counting "think time" as time you spend working.

Edit: See also my comments from November about procrastinating: http://news.ycombinator.com/item?id=81366

14.Ahh to be a Startup in this crazy Web 2.0+ world (msdn.com)
12 points by drm237 on Jan 13, 2008 | 6 comments
15.Unix clock just rolled over from 1,199,999,999 to 1,200,000,000 (quickwitretort.com)
12 points by drewp on Jan 13, 2008 | 7 comments

I think you guys should give him a bit more credit. True, the interface is horrible, and yes, luck was definitely involved, but when you look beyond that, he managed to deliver a service that, in my opinion, filled the needs of many - a completely free of charge dating site. Many other dating sites are extremely limiting with respects to being able to contact people, often times not even letting users message each other without submitting to a monthly fee.

It may look like crap, and he may have used shady tactics to gain traction, but the guy is making $10 million a year. I'm sure most of you would put up with much more if the reward for doing so was so delicious.


8 hours?!

I've been pulling 12-16 hour days, nearly 7 days a week for the last 12 years.

You have to love what you do. It has to be what defines you as an individual to pull that off with any kind of success.

It'll kill you though, I have more medical and mental problems than I know what to do with, all stemming from the damage my passion/obsession causes. But that's the cost and I gladly pay it. Why? Because it's what I am, it's what I do - and I'm pretty damn good at it.

How do I do it? Marijuana mostly. I don't drink caffiene (nor alcohol or any other types of drugs/stimulants). Caffeine causes peaks and crashes which make doing 16 hour sprints impossible, so I steer clear of that and I also minimize sugar intake but have noticed a semi-regular pattern of minimal sugar intake during the day - usually in a sweetened beverage or a fruit smoothie or eating fruit - although at 4am I will sneak a snickers.

I also tend to eat a lot of smaller meals throughout the course of the day, which helps keep me energized without making me lethargic.

Also, a few brisk walks during the day are good to clear the head and give me time to isolate my thoughts about what it is I'm working on.

It helps to start the day out with a list of things you want done, with the understanding that you can reshuffle/prioritize that list at any point, so long as you have a list.

But it really does boil down to the marijuana. It does a few things for me, cheif among them is that it sort of clears my brain and lets me really focus on what I'm working on. I'm disciplined enough at this point in my game that I can do this fairly easily. The other thing marijuana does is make me slightly lazy - which actually has the effect of me writing significantly less code to do the same thing, so I gain a LoC metric there. It also forces different perspectives when analyzing a problem so it's fairly often that I find holes in whatever system I'm developing that I might have overlooked otherwise.

Note, I'm not advocating you start smoking weed at work. I'm the boss at my company, so it's kosher, but most places - no way, you'll have to find other ways to achieve the same results.

Listen, if you aren't passionate about what you are doing, don't fine any thrill in it and are worrying about how you're going to pull of an 8 hour day, then maybe this isn't the right career for you?


And I just bought a new watch! Frick!

Q. Why does misery and inequality seem to coincide with technological progress?

A. Because the dead don't fill surveys.


I think it's important not to confuse OAuth with OpenID. I think OAuth might be very useful indeed, and I'd like to see it succeed. Tying it to the Titanic will not help.

I have finally found one clear use case for OpenID: sending out login passwords to newly hired consultants without using cleartext email. Of course, this isn't the kind of killer app that will make OpenID a household word.

Among other things, OpenID is: confusing even to geeks, not especially secure, not solving a particularly important problem, an open-ended set of external dependencies on provider code that you do not control, very poorly branded (because, you know, everyone loves having their ID checked), poorly marketed, and often assumed to be something it isn't.

From a site developer's standpoint, OpenID solves the wrong problem. Nobody is avoiding your site because they have to remember a password. That requirement hasn't killed eBay, Gmail, Amazon, PayPal, Facebook, Plentyoffish, HotOrNot, news.yc, or any other site in history. Frankly, if people are avoiding your site, it's probably because it sucks. Spend your time making your site suck less.

A good way to make your site suck less is to eliminate the need for signups at all, to delay that need as long as possible, or to get the user so excited about the site that they barely notice the signup process. OpenID doesn't do these things. The problem with signups is not the typing, remembering the passwords, or even securing the passwords -- it's the mental overhead associated with deciding whether or not you want another relationship in your life. Can you trust this new site? Will it waste your time? Will it spam you? Will it hit you up for money, forcing you to feel embarassed as you say no over and over? Will your friends find out that you signed up on the site? Will the site plaster your Amazon purchase history all over the open Internet?

Signing up for a site is exactly like making a new friend, and if you think it would be great to automatically be friends with everybody in the world, find a recent multimillion-dollar lottery winner and ask them what that's like. Managing your relationships takes thought, attention, and judgement. Nobody's automated that yet.

21.Google, the Search Party (newyorker.com)
10 points by daviday on Jan 13, 2008
22.My Favorite Math Party Trick (cornellmath.wordpress.com)
10 points by hhm on Jan 13, 2008 | 3 comments
23.2008: The Rise of Functional Programming: F#, Scala, Haskell (and failing of Lisp) (brandonwerner.com)
10 points by nickb on Jan 13, 2008 | 3 comments
24.The Raven Paradox (logic) (wikipedia.org)
9 points by hhm on Jan 13, 2008 | 16 comments

[x] #00FF00

It's not easy being green.......


I think you are dead on; you need to find a job you enjoy. When I was a student I was lucky enough to do 6 co-op terms (internships). During this time I learned that your actual productivity is not being measured. The majority of your performance is measured relative to other coworkers, and simply the perception on how smart and hard you work. On one co-op term, I was highly regarded, but only doing what I considered 2 hours of work per day. However, I was doing all they expected of me and continually asking for more work, so they thought I was fantastic. I was able to do this by working smarter, not harder. Another co-op term at a small company I was doing 6+ hours of work (again, from my perspective) and I did not get a good review at all. This was because I was doing about half the work of the other programmers there, who were very senior and experienced developers. Additionally, there were no opportunities to work smarter, I just had to churn out a lot of code in a very confined way.

So, I quickly learned that a) your employer is judging your work on their perception of performance, not what you think b) in order to excel, you need to be in a position to work smarter

All of this brings me to the conclusion that in order to succeed you need to be set up for success.

27.A Dude, it's like you read my mind (scottaaronson.com)
9 points by iamelgringo on Jan 13, 2008 | 2 comments

So there's a 27 year old guy who was a COBOL expert 10 years ago (that's 1998 at age 17). He's frustrated with the corporate treadmill but never quit. And now he feels let down by Paul Graham. Something's not quite logical about this.

Then I'm basically limited to 15 minutes a day.

I think we're too quick to attribute what we don't understand to just plain luck. I wouldn't underestimate Markus - running a site with 300MM page views per month single handedly is pretty impressive.

One quick observation: it's not an accident that some of the ugliest websites on the internet (MySpace, Craigslist) are also the most popular.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: