skysight-inc/HackerNews huggingface dataset:
'Say you estimate the cost at $10,000 and they want you to make a change, you say, "Okay, but this change wasn't included in the $10,000 so we will have to estimate how much the change will cost and add it to the bill. If you want us to do that, let us know."'

Sometimes it's really that simple. Other times, you end up debating whether something is a 'change', or 'clarification', or some replacement, or whatever.

The upside of fixed bid is that you can do quite well when the process is well-defined and everyone is reasonable. The upside of hourly is that you get to offload assorted issues (i.e. prolonged requirements gathering, change requests, and ad-hoc requirements finessing) and focus on the work.

For every person I hear advocate fixed-bid, I hear another advocation hourly, and each swears experience is on their side.
Fortunately, SVG and VML don't limit you to just vector graphics. You can render, transform and scale raster graphics within the vector graphics space. The graphic is just like a textured polygon that you can move around.

Consider how 3D engines work, where they compute all the visible surfaces using vectors, and then transform and scale raster "textures" to apply on these surfaces.

The XML issue isn't actually relevant either because normally the SVG/VML DOM objects will be generated at runtime by JavaScript, rather than serialized in the page and served up statically.
You can click on a link in a text message even on my dumbphone.
In know that in the past TinyURL has adopted the domain and databases for failed shorteners in the interest of preventing link rot. Maybe Tr.im should toss an email to Gilby?
Sorry, I missed that sentence, yes you're right. I read the bit to the right of the blog and the blog title which give the impression that he was experienced with Haskell.
I'd buy the domain name, but I suspect it will go for a lot more than $1000.
I'd say even more F5s (assuming that's how you compile/run). There's nothing wrong with using the computer to catch a missing semicolon or parenthesis. If it takes you 20 minutes to find the error, maybe it's because you haven't been running your code often enough, rather than the reverse.

Coding is debugging just like writing is revising.
How do you describe the SVGs (i.e., the sprites) that get sent to the browser?
I'm concerned about this too. The web client at the moment is brutally unresponsive and hemorrhages memory in Firefox. I know it's far from release, but I'm skeptical that these problems can ever be solved in a present day real world web app. If we had worker threads and some browser patches, maybe.
Oh my!!! Long ago I thought of possibility to create such converter, but did not know someone already implemented it. This is so cool, thanks for the link.
If they were trying to sell the whole package, including the domain name, which is required for the service to continue supporting all the existing links, and no one would buy it even "for a token amount", then why would the domain name alone go for more than that?
The Case Against Apple Is Just As Much A Case For Apple
Indeed. If you're going to argue against that article, surely that's the main point you should be addressing.

Large companies? Efficient? In what universe?
The premise of the article is the exact opposite - it suggests (and quotes numerous studies and observations) that exercising not only doesn't help in weight reduction, it can result in weight gain. This is a counter intuitive conclusion, which is what makes the article so interesting.
But if that's all it's doing, where is its differentiation between it and the hundreds of other URL shortening services.

You CAN run a social network cheaply, but good luck competing with Facebook / MySpace / Orkut / Friendfeed / Livejournal / et al.

Offering the service with the least amount of features can sometimes be a winning idea, but in this space, I'm not entirely sure that it's doable, considering the major feature works pretty similarly across all tr.im's competition.
Printmaking. It's meticulous, and I am not --- it stretches me, and makes me feel like I'm working. I love holding all the technical details in mind (how much ink, how much acid, how much light, this is toxic, that is flammable) while still maintaining the vision, trying to give an emotional, intellectual, physical experience to anyone who sees the product. It's people-hacking.

Also, I'm designing a programming language. But these days, who isn't?
Try to consider all possibilities for failure and all inputs or contingencies. If you are still coding and don't want to interrupt your "flow" to go write an error handler, just put an assertion or a comment or something that will force you to go back and write it before you compile. That way you'll know when the problem is actually solved.

With that in mind, perhaps also think about the way you are structuring your development. Do you have a mental (or physical) sketch of the code before you write it? There's something to be said for having a bit of paper to scribble on before and during the coding process. Map out little examples (e.g. "test cases") and think about how you will deal with all of them.

Finally, writing stubs (i.e. functions or modules that are basically empty) when you first start can be great. If you know you're going to need some pieces of functionality in order to solve your problem, then write stubs for those and then solve the problem (i.e. write the main program flow). Hopefully then when you come to write the supporting functions that do most of the heavy lifting, you will have clarified your intuitions around how they are supposed to work.

So my advice would be to be a little more rigorous in your approach _before_ you get to the point of having screenfuls of code in front of you.
I don't know what I'd love to work on.

If you'd asked me a few years ago, the job I described then would be almost indistinguishable to the job I have now. But I don't enjoy it and feel:

a) I know this is a good job and I ought to be able to love it, there's something wrong with me.

b) If I feel this way about this, wouldn't I feel the same about any other job that seems good now, if I did get to do it?

c) Guilty that this is a good job and I'm not making the most of the great opportunities it's giving me.

I fear the kind of ant-in-a-massive-system job, such as "Legal Department E-mail Archive Storage Administrator" and I love the idea of "Independantly Wealthy Research Lab Owner" where I get to be involved in a lot of different things at a high level.
Surely freezing the service so that no new urls could be summited would solve that problem but still keep the links alive.
MIDI keyboards taught me that this channel is very hard to use effectively, even with tons of keyboarding experience. It's cute, but I'd need a lot of convincing it's very useful.
My experience is that when I code in a simple monochrome text editor, I have instinctually learned and internalized syntax, reserved words, etc. much more quickly. Kinda like shooting a basketball into a smaller hoop or driving a stick shift. Everything just flows better and I rarely have OP's problems.
Actually, what I'm saying is that you strengthen restraint _by_ weakening appetite. Not to say there isn't some small percentage of people who can rise about their stomachs desire for food, I'm just saying that for 85% plus of the (mostly sedentary) human population in the west, the key to success is to eliminate that basic need for food in the first place.

I'd be interested in reading about successful diets/studies that tackle this from the angle you are talking about - rewiring the brain/emotions so that they are able to overcome the hunger reflex over the long term.
Comic books. If I had my druthers, I would somehow be working in comic books. At some point in my life, I had a good deal of artistic talent, though the years I spent goofing off in puberty seem to have killed it entirely.

It's something of a dying art form, as most print-based things are, but also seem to have resurged in many ways, especially as movie properties. I'm eagerly waiting to see whether or not TakeComics succeeds as becoming the iTunes of comic books, and whether or not it spawns any cottage industries or ideas as a result.
What the cigarette companies perpetrated in the 60s was fraud. This was not mere 'information asymmetry'--this was flat-out lying about what was in a product, which is its own special category of badness (to start with, it's a breach of contract, in some sense). Also, as an important (but logically irrelevant) corollary, people died.

I don't think that "information asymmetry" is ever sufficient cause for government action. And I don't think "there is a trade-off between the consumer's right to know and a company's... right to privacy". That's a weak tautology, like saying "People shouldn't have to walk through metal detectors, and should still be perfectly safe in planes." It's vague enough to be agreeable without actually having said anything.

It's easy enough to look at the Hoover Dam and say "Look at this dam! Without government intervention this dam would not exist!" The fallacy is to suggest that the choice is between the hoover dam and nothing. In fact, it's the choice between the dam and where the money would have been spent. Was the hoover dam better than whatever the market could have done with the money? I don't know, but that's an extremely difficult position to argue--you have to argue against everything.

What you're saying is, basically, the government intervened to force companies to give us information. Is that good? I'm not so sure. We started (seriously, anyway) regulating the financial markets shortly after the great depression. Then the market got too complicated for the regulators, and it crashed, so we wrote more complicated regulation. Wash, rinse, repeat. There are still as many Madoffs today as there were in the 1890s--the only operative difference is that they've been regulated into a complexity that could potentially fool even me. Meanwhile startups are too scared to IPO, which is the secret cost everybody overlooks (what we would build with the hoover dam).

By and large, you still have the same percentage of bad apples. Information has simply inflated over the years. Still the same asymmetries, just a higher floor.

And what's really perverse about the whole thing--you see huge gains in the floor during the highest asymmetries. Think about the great economic booms--railroads, industrial revolution, even recently with MS Windows and/or Office. These are periods of huge economic growth, of technology raising everyone's standards of living. And they're the periods of patents, of lawsuits, anticompetiveness, and huge economic disparities.

At the risk of committing a huge causal fallacy, I posit that asymmetry, informational or otherwise, is necessary for these gains. Or at least more necessary than most of us feel comfortable with.
This sounds like a symptom of typing too much and thinking too little.

This may be a little old fashioned of me, but any time I try to solve a problem that isn't immediately obvious, I write it down on paper first (or whiteboard it).

If you can't hold the solution in your head and visualize it, then you should try to break the problem down into smaller chunks so that you can at least fully visualize all of the moving parts.

Around my office, I have a set of maxims that I always emphasize in order to keep our quality high - #2 on the list is to always measure twice before cutting (or writing, in this case); rule #1 is to pick the low hanging fruit first. There's no point in starting to code a solution until you know with a level of certainty what it is you're trying to achieve. Lots of people with debugger syndrome don't know where they're going until they happen upon a solution by coincidence instead of by intention.
Because I think "a token amount" is (much) more than $1000 for a business. As it is for a short and readable domain name.
Free is a tactic used a lot for tech companies. This is because people have to be shown why this new technology that you created has value. If it wasn't free then it is like you telling someone i have this cool website that can make you more productive, give me $20 to find out if it works for you. Most people won't pay for that because they are happy with what they are currently doing.

Look at skype. If skype was not free no one would care to try it because the available options are just as good.
Other than for twitter I don't see the reason for them really. Tinyurl was around from 2002, but was not heavily used until Twitter used it.
there must be enough content/news websites they could partner with. twitter is not the only business out there
Large companies typically grow to their size through efficiency. IKEA grew by ultra-streamlining their ordering, distribution, shipping and supply chain in general. I can buy a $50 bookshelf that accomodates all of my trade paperback collection and is higher quality than many of its competitors.

International Paper, while not being the greatest example, has also done an amazing job at refining its distribution and supply chain such that I can order a quarter ton of paper today and have it in house within 2 days.

Amazon is another example of big company efficiency, for reasons I think are obvious.

Yeah, they might not be the best at bookkeeping and/or HR functions, but they also have a LOT more employees and revenues to keep track of than a 5 person startup... but at their core operations, a really good large business is something to model after more than sneer at.
Bait and Switch would be one way. The founders probably wouldn't want to sell to someone doing that though.
If you can extract computing power out of IP checksums, you should be able to extract a lot more from cryptographic handshakes, like say SSL. Is this SHA1 valid? Let’s ask Amazon.com. (Actually I think they run an MD5 variant of SSL, but you get the point.)

However, you might get your IP blacklisted pretty quickly if you fail the SSL handshake too many times. SSL used to be pretty CPU heavy especially in the old days, so there are bound to be some DoS preventing load-balancers in front of the SSL ports.

The biggest problem here of course is that the marginal cost of CPU cycles is quite lower than bandwidth (which is why web servers support GZIP/Deflate for resources). This scheme mostly allows us to convert bandwidth to processing power. I wonder how this ties back to the age-old memory vs. processing trade-off.
no carrier will ever have a stranglehold on me again.

except google, apparently.
Out of curiosity, is your ownership split evenly in to thirds? Or does guy #3 hold a smaller piece of the pie since he isn't taking as much risk on as the other two?
Actually, I lost a lot of weight just by cutting 10% from my calories. I did no additional exercise and no extravagant changes to diet ... just identified a few places where there was a big calorie win and knocked it out. Then, I just waited. It takes a long time, but I hardly modified my life at all. I think half the problem with the struggle people have to lose weight is just that they are impatient - if they don't see results within a week or two they just give up. The key ingredients to me are moderation and time.
http://www.cs.uiowa.edu/~jones/book/
and
http://briansawyer.net/craft/bookbinding/

Note that these are tutorials for reasonably archival binding; good for 300 years. You only need your nodebook to stay bound for a month, until it's full of your distilled brilliance, and then you file it. So if you don't have a binding frame, that's OK. A couple boards and a hand-clamp will do 'ya.
Apparently they can't afford a spellchecker either.
Rather than say that no one was interested for "token amounts" of money, I wish they would put the service up on eBay or accept closed envelope bids.

I'm sure they would get something for it, I myself would be extremely if the price was right.

That said there seems to be the same air of fatalism in both their attempts to sell the service and the reasons for giving it up.
This could be damaging to Twitter since it will raise a lot questions about the viability of short urls. It may force them to either buy bit.ly or start their own service.
exactly. when i read the question i thought: i bet you are using some dynamic scripting language.

use a language a programming style that lets you catch errors early. it's amazing how much time i've wasted testing for errors after small changes in ruby programs. errors that a decent language & compiler wouldn't have allowed or detected much earlier. some languages just weren't designed with this in mind. i no longer program in ruby.

related: once upon a time, i had the idea that i should be able to write a program and have it compiler & work at the first & final attempt. code was in c. of course that failed miserably. especially with the lack of c coding experience. the lesson: don't try to be silly/"smart", use the tools to your advantage. (if your tools don't have advantages, don't use them).
Speculation: Based on the principal that you can't improve what you don't measure (or, what you measure you improve), you could keep a log of the sloppy mistakes you make. After a while, maybe patterns will emerge and you can attack 'mistyping numbers' separately from 'missing cases in a switch block' and 'correct behaviour of nested-if took 5 attempts'.
He's not rolling out his own libcrypt. He's fixing a bug: i.e. getting rid of the unnecessary dependency on a huge library (OpenSSH) just because of a hashing function. This is systems programming, not a brainless enterprise data pumping: you get rid of unnecessary dependencies if you want to run on cell phones and blade servers at the same time.
http://blog.tr.im/post/159369789/tr-im-r-i-p

> this required significant development investment and server expansion to accommodate. tr.im has thousands and thousands of users, creating tens of thousands of URLs per day

10K urls per day x 1000 hits for statistics = 10M hits per day, each of which is a read (duh) but also a write to keep a hit count. That's 120 reads + 120 writes per second.

Most of the distributed nosql options can easily handle that on a single node, and the non-distributed ones generally have even higher one-node throughput.

Not to be an armchair architect, but url mapping is pretty simple. Sounds like they were using a bad tool for the job if they were having to throw hardware at it.
If I ever had enough money, I'd love to start my own software non-profit, like the Mozilla Foundation. There's so many small bits of software that really make a difference in everyone's day-to-day life (whether you're an average Joe or a hardcore hacker) that don't ever get fully developed because there's no commercial market for them. With a few million dollars (which is enough to just work off of the interest), you could easily set up a scholarship program for talented students to do some part-time development on these projects, and it's sort of a win-win for everyone involved.
Exactly. We aren't writing code on punch cards, getting it right the first time isn't a huge deal.

If you make a lot of mistakes, have sanity tests cover your ass.
I didn't know about the $(...) syntax. I've needed this, and resorted to a script, thinking it couldn't be done in a one-liner.

$(command) allows them to be nested arbitrarily, whereas `command` can't nest.
and T-Mobile?
Arrington, you ignorant slut!
Let's mark this moment in the health debate as it happens
Why not just put a URL shortener on the SMS interface, where it doesn't matter much if the shortener service dies anyway, and leave the original URL on the web interface.
Some of these rebuttals are incredibly flimsy, where they actually even manage to form something resembling a rebut.

For example - How on earth is being prevented from using a flash-capable web browser (or any non-Safari browser) a case for using the iPhone?
It would be more helpful if you actually described what ZSH does differently that solves the problem without manual configuration.
Phpinfo()
Two parts:

1) ASSERT. Catch the mistakes while they're still dumb.

2) Take advantage of your type checker to catch mistakes.
Interesting that one of the commenters is Dave Winer, and he seems to think tr.im represents viable business opportunities.
Code a little bit at a time. If there's a bug, you know it was due to what you just added.
Sure, the percentage might decrease. But only because the number of total links are increasing by a ton.
Optimus Tactus Keyboard Based On a OLED Touch Display
I've found that copious use of assert statements has done wonders for reducing the amount of time I spend debugging. Its a good idea to use enough assert statements that when there's a problem it is reported immediately instead of propagating and causing weird symptoms that you have to track down. At the beginning of every function I think to myself "what am I expecting here" and then put in 2-3 assert statements to make sure my expectations are met. For example, if I'm passing a data structure that I expect to be filled, I assert that it is non empty.

When I encounter a bug I write an assert that reveals the problem before I fix it in order to prevent having to deal with the same issue more than once. This is especially big for me since I work with a lot of (other people's) data.
If you live in a place where sunlight is scarce for months at a time in the winter, and you have no other guaranteed source, Vit. D deficiency is worth considering.

I tried 400IU's a day in winter for a couple of years along with coffee. I noticed it enhanced the coffee buzz with a pleasant glow.

The rest of the year I'll take my chances with sunlight.
Formal methods for proving timeliness, correctness, etc. Preferably in tools that mechanically verify those properties.
That idea in the second paragraph of your comment is good. Someone ought to do that.

As far as the first, though, I think that you've got it wrong. It's not the same as any old site breaking. Say a person, over time, links to eight sites in his forum comments, and one goes down. Seven links are still valid. If he uses a shortener service that collapses, none of his links are valid.
broken links in the past were the result of actions of the creator of the content, however, in the case of url shorteners, the broken links are pointing to content that still exists, in the same place it was when the link was created.

There's a big difference betwen that an the broken links since the web began...
Ironically bit.ly thinks tr.im is spam: http://bit.ly/2JXXZ
I didn't know that Turing studied morphogenesis. D'Arcy Thompson's "On Growth and Form" (mentioned in the article) is a fascinating read (at least, it was for me).

For a nice introduction to computability theory I suggest David Harel "Computers Ltd".
Yes. As I said, the turning point for me seems to be at about 50km/week. I probably did double that in high school. That came out to about 10 hours of running per week.

I agree completely about "cube rats" not being able to lose much weight from 30 minutes 3 times a week. The research mentioned in the first part of the article seemed pretty much in line with my experience. It really does take about an hour to an hour and a half a day to make a big difference in terms of weight loss.

I still think that it makes sense for cube rats to do cardio, though. Even if it's only 30 minutes a day, they'll still be quite a bit healthier, lower their risk of heart disease more than losing weight would, and even promote neurogenesis.

The human body just isn't well adapted to being a cube rat.
"But if that's all it's doing, where is its differentiation between it and the hundreds of other URL shortening services."

Nothing. The design specification was just to "keep the site running", not to support a given feature set, for the purpose of not breaking the links, and nothing else. An extra buck or two from Google would be a bonus, but personally I wouldn't count on it.
True, but with Steve Jobs it goes beyond that: from innumerable accounts by people who have known or met him, it's clear that Jobs is an asshole based not just on a first impression, but on an nth impression for all values of n.